Data Science UCSB's management of GauchoCourses, a quarterly course planner that allows students to see possible schedule combinations for the classes they want to take, and save them for when their pass times come around.

Overview

GauchoCourses

Data Science UCSB's GauchoCourses application is a quarterly course planner that allows students to see possible schedule combinations for the classes they want to take, and save them for when their pass times come around.

See the Wiki for contribution instructions and reference information. The backend and frontend directories have their own respective README's with more information.

Having a problem with the app? Create an issue here.

Comments
  • Create Google OAuth App

    Create Google OAuth App

    Background: The app is designed to use Google OAuth for authentication. This is the "sign in with Google" flow that you see all over the internet. "OAuth" is "Open Authentication Protocol" and it's an open standard, not anything Google-specific. When you see "Sign in with Facebook/Apple/etc" across the internet, those are OAuth flows as well, just using Facebook/Apple as the provider.

    When you create an OAuth app with Google, you will get two strings: a "client ID" and a "client secret". These strings are used by the GauchoCourses app here: https://github.com/crunch-time/crunchtime/blob/main/backend/src/main/resources/application-prod.properties#L30-L33

    Tasks:

    A word of warning... it's probably best to do this using the club's Google account so the credentials can be passed down to future officers/members. If you use your personal account, then you'd have to give your password to the next cohort of students that work on this app!

    • [x] Using club Google account, follow these instructions: https://developers.google.com/identity/sign-in/web/sign-in

    You only need to do the numbered steps: image

    Backend 
    opened by JasonFreeberg 3
  • Copy over Wiki articles to this repo

    Copy over Wiki articles to this repo

    The wiki for the code is here: https://github.com/crunch-time/crunchtime/wiki. It contains info about contributing, how the repo is structured, setting up local dev environments, etc.

    Let's copy those articles over to the Wiki for this repo: https://github.com/data-science-ucsb/gauchocourses/wiki

    documentation 
    opened by JasonFreeberg 3
  • Fix dependencies [M1 Mac Compatible]

    Fix dependencies [M1 Mac Compatible]

    Removed conflicting dependencies that don't work on m1 chip. Updated node-sass to newer version. Works with the following npm and node versions:

    npm mac: 8.19.2 npm windows: 8.15.0 node mac: v19.0.1 and v16.18.1 node windows: v16.17.1

    opened by WinbertZhang 1
  • Create Azure Subscription for Club and add members

    Create Azure Subscription for Club and add members

    The app will be hosted on Azure, so you'll need to create an Azure subscription using the club credit card,

    • [x] Azure subscription is created: https://azure.microsoft.com/en-us/free/
      • [x] You'll probably want to create a Microsoft account for the club rather than a particular person, since this will be passed down
    • [x] The PM's and DevOps people have created accounts on Azure
    • [x] The PM's and DevOps people have been added to the Azure subscription: https://learn.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal-subscription-admin
    Frontend 
    opened by JasonFreeberg 1
  • Remove Crunchtime changes

    Remove Crunchtime changes

    For a brief period @hallbrad and I were trying to make this project generic for other universities, but that's no longer the plan so this PR removes some of those genericizing commits and the application runs locally now... on my machine ;)

    opened by JasonFreeberg 0
  • Update the backend to Java 17, update Maven dependencies

    Update the backend to Java 17, update Maven dependencies

    The project was originally implemented ~3 years ago with Java 8. Java 8 is going to EOL soon, so we'll need to update this to Java 17.

    Everyone on the team can download Java 17 here: https://learn.microsoft.com/en-us/java/openjdk/download

    Tasks:

    • [ ] Update maven poms to reference Java 17
    • [ ] Update the Dockerfile to use Java 17
    • [ ] Update Maven dependencies, their current versions may not work with 17
    • [ ] Ensure the application still builds and runs successfully
    Backend 
    opened by JasonFreeberg 0
  • Update Node and NPM dependencies

    Update Node and NPM dependencies

    The application was written ~3 years ago with Node.js 12. The lates Node.js version as of writing is Node 16. You'll want to upgrade the frontend to use the latest Node.js version.

    Some notes:

    • The version of Node.js is specified here: https://github.com/data-science-ucsb/gauchocourses/blob/main/frontend/pom.xml#L33
    • I removed two packages when trying to resurrect this project. You may want to ad these packages back: https://github.com/data-science-ucsb/gauchocourses/pull/10/commits/d40c56d633c1f5838a99c79b5600e11bb537d373

    Tasks:

    • [x] Update Node.js to a supported version
    • [x] Update the packages in package.json to their supported versions
    • [x] Ensure the application still builds and runs successfully
    Frontend 
    opened by JasonFreeberg 2
  • Create an account with UCSB Developer Portal & get an API key

    Create an account with UCSB Developer Portal & get an API key

    We'll need to create an account with the UCSB Developer Portal: https://developer.ucsb.edu/ and get an API Key to power the GauchoCourses app. The account should probably be made with the UCSB DS email so it can be transitioned easily in the future.

    Some terminology, similar to the OAuth task, you'll create an "App" with the developer portal which will give you access keys. Our app will need read access on these three APIs:

    • Students - Student Record Code Lookups
    • Academics - Academic Quarter Calendar
    • Academics - Curriculums

    IIRC you'll fill out a form and then someone from UCSB will email you to understand the purpose of your app and why you need access to their API's. Just describe the project's goals and explain that the app was approved 3 years ago, and we're just in the process of restarting it under the club's supervision. Feel free to CC me in that thread.

    Backend 
    opened by JasonFreeberg 3
  • Infrastructure: create the Database

    Infrastructure: create the Database

    Background: I originally implemented the app with Azure PostgreSQL. I had all of the infrastructure in my work account, so price was not a concern. However, price is now a concern since this will be hosted in the club account. Azure Cosmos DB is another database option which has a free tier, where the first 1000 requests and 25 GB are free.

    Tasks:

    • [ ] Create a Cosmos DB free tier: https://learn.microsoft.com/en-us/azure/cosmos-db/free-tier
    • [ ] Save the access credentials/keys/password! You're going to need this later to connect the DB and application
    DevOps 
    opened by JasonFreeberg 0
  • Infrastructure: Create the Azure Container App

    Infrastructure: Create the Azure Container App

    The first piece of cloud infrastructure we'll need is the server to host the application! Azure has a dedicated service for hosting Docker containers, called Azure Container Apps. Go ahead and create this service on Azure, and try to get the container deployed to it from the registry.

    The application won't start correctly until you also connect the database, so don't worry if you get an error screen when browsing to the container. The definition of "done" for this WI is that you have an Azure Container App resource created and the container is deployed to it.

    Hint: You'll need to do task #4 first to get the container published to the registry. To trigger that workflow, you'll need to create a release

    DevOps 
    opened by JasonFreeberg 0
  • Create GitHub Actions workflow to check Pull Requests

    Create GitHub Actions workflow to check Pull Requests

    Background: A common practice in modern software development is to run automated tests (unit tests, end-to-end tests) when a pull request is created against the main branch. This way the developer doesn't need to run them locally (or forget to run them locally) and it gives the team confidence that the changes in the PR won't break the app.

    Task: Create a GitHub actions workflow that is triggered whenever a PR is created against the "main" branch. The steps inside the Docker container which run the tests (https://github.com/crunch-time/crunchtime/blob/main/Dockerfile#L8), so this will effectively run the frontend and backend unit tests.

    DevOps 
    opened by JasonFreeberg 0
Owner
null
⏱ A library for working with dates and times in JS

Luxon Luxon is a library for working with dates and times in JavaScript. DateTime.now().setZone("America/New_York").minus({ weeks: 1 }).endOf("day").t

Moment.js 13.3k Nov 23, 2022
A easy-to-use component to show somebody's schedule list to help interview arrangement or visit arrangement.

vue-schedule-board A easy-to-use component to show somebody's schedule list to help interview arrangement or visit arrangement. 中文 To get started, che

jinfang 17 Nov 3, 2022
Convenient Vue wrapper for the add to calendar button snippet, which lets you reliably create beautiful buttons, where people can add events to their calendars.

The Add to Calendar Button - optimized for Vue 3 This is a wrapper repository for the popular Add to Calendar Button, making it even more convenient,

Add to Calendar 3 Nov 9, 2022
VUE chinese-lunar date-picker component with festivals and solar terms

vue-jLunar-datePicker @JinWen Lunar-Date-Picker component, lightWeight, powerful, easy to use, with festival and solar terms. Online demo enjoy the de

null 56 Oct 11, 2022
An elegant calendar and datepicker plugin for Vue.

An elegant calendar and datepicker plugin for Vuejs. npm i --save v-calendar Documentation For full documentation, visit vcalendar.io. Attributes High

Nathan Reyes 3.6k Nov 30, 2022
Full calendar base on Vue2 and momentjs.

Vue2 Calendar Component Full calendar base on Vue2 and dayjs. Support month and week view. Custom date item style with scopeSlots. 中文文档 ?? Live demo I

Kit 75 Nov 11, 2022
Simple and clean calendar written in Vue.js

Vuelendar Simple and clean calendar written in Vue.js. Check out full Vuelendar's documentation here. Features Select single date Select range of date

The Codest 76 Oct 5, 2022
A lightweight collection of Vue components (including molecules and organisms) to manage dates easily

vue-date-tools VueJS Date Components based on the date-fns library Click Here to Try the Live Demo Best features: Lightweight and almost no dependenci

Antoine S 13 Jul 18, 2022
A responsive and customizable Github heatmap calendar.

vue-github-calendar A responsive and customizable Github heatmap calendar for Vue.js Usage Install npm install vue-github-calendar Import the componen

Antoine Carat 4 Mar 18, 2021
List Maker - CQRS and Event Sourcing Example

List Maker - CQRS and Event Sourcing Example This is the frontend app written in Vue.js for the CQRS and Event Sourcing Example project. Usage Instala

Renan Taranto 12 Mar 31, 2022
📅 A feature-rich calendar component, support multiple modes and gesture sliding. For vue 3.0+

?? A calendar component for vue3.0. Support gesture sliding, range selection, according to the week switch...

飞翔的荷兰人 433 Nov 18, 2022
A simple and sweet vue.js calendar

vue-sweet-calendar A simple and sweet vue.js calendar Features Showing Multiple-Events Fully customizable How to install npm install vue-sweet-calenda

Mahdi Aryayi 35 Oct 5, 2022
A collection of components that visualizes DaySpan Calendars and Schedules using Vuetify

dayspan-vuetify A collection of components for Schedules and Calendars in DaySpan using Vuetify This library strives to offer all the functionality an

Philip Diffenderfer 1.1k Nov 22, 2022
A simple vue calendar component. Base for further development and styling.

vue-simple-calendar A simple vue calendar component with minimal css. A base for further development/styling. DEMO Dependencies date-fns, lodash-es In

Roman Ranniew 6 Jun 15, 2022
Contra - Combines GitHub and GitLab contributions calendar to create a single calendar

Welcome to Contra ?? Combines GitHub and GitLab contributions calendar to create

Ahmet Korkmaz 8 Aug 13, 2022
Localized, accessible calendar and datepicker for Vue with no external dependencies

Calendar Localized, accessible calendar and datepicker for Vue with no external dependencies. Installation $ npm install vue-a11y-calendar Pe

Rohan C 0 Feb 11, 2021
Send your loved ones a vibe with a lovely sound, so they know you miss them. Anytime you want to, anywhere they are.

An app to send your loved one a vibration with a lovely sound, so they know you miss them. Anytime you want to, anywhere they are.

fotiecodes 32 Aug 6, 2022
A chrome extension that allows a YouTube watcher to 'bookmark' different parts of a video so that they could come back to it later

A chrome extension that allows a YouTube watcher to 'bookmark' different parts of a video so that they could come back to it later. This is a personal project for fun and learning.

Brian Lin 9 Sep 20, 2022
Allows the components to save and load their data across the browser sessions.

VueStorage Allows the components to save and load their data across the browser sessions. Works for Vue 2 & 3. demo Try it out! dependencies VueDemi s

Sergej Sintschilin 53 Nov 16, 2022
My take on a life planner.

do.Able A life planner capable of handling everyone and everything Setup Make sure to install the dependencies: # yarn yarn install # npm npm install

Cytro 2 Nov 9, 2022