Compile a group's weekly schedules to find times where everyone is available or create a part-time schdule that takes into account everyone's availabilities.
MongoDB, Express, React, Node, Heroku
Our app aims to provide useful tools for groups to compile their schedules and work around them. A few tools that we are going for are giving the groups the ability to find times where everyone is available or create a part-time schedule that takes into account everyone's availabilities. Users will be greeted with our home page where they will be able to log in using Google. They will then be directed to their "Profile" where they will be able to view the scheduling groups that they are in, select a group that they want to view, or create a new group entirely. When viewing a group they will be able to see the compiled schedules of all members in the group and perform actions using the tools mentioned previously.
Our app will have 2 roles, Group Leaders and Group Members. In some cases, such as in a work environment, there will be a need for group leader who has special admin priviledges like adding new members or using the tools. Everyone else in the group will simply be a member who can view the schedule.
List of members:
- Wesley Kam (wesleykam)
- Cyril Wang(cyril-wang)
- Dylan Chung (DylanC1222)
- Maya Ma (maya-maye)
- Tianyu Sun (tianyusun7)
- Luke Li (lukewli)
Make sure to install
Frontend
- react
- react-bootstrap and bootstrap
- react-dom and react-router-dom
Backend
- cookie-parser
- cookie-session
- cors
- dotenv
- express
- express-session
- googleapis
- mongoose
- passport
- passport-google-oauth2
- git clone this repository (if you have ssh setup: git clone git@github.com:ucsb-cs148-w23/project-t10-weeklyschedulecompiler.git)
- cd project-t10-weeklyschedulecompiler
- npm install -C ./frontend && npm install -C ./backend
- touch ./backend/.env or create .env file some other way and set environment variables (PORT, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_CALLBACK_URL, MONGO_URI, NODE_ENV)
To run locally:
- Create two total terminals at root directory
- In one terminal: cd backend && node server.js
- In the other terminal cd frontend && npm start
- Everything should be complete
- Login using your Google account
- From the home page, you should be able to see your Google Calendar events
- From here, there are two paths you can take: create a group or check which groups you are part of
- If you want to create a group, click create a group in the navbar and input any necessary information, such as name, description, and group members
- If you want to see the groups you are a part of, click groups in the navbar. From here, you can also click create a group. For additional details on your group, click on a group card
- Once you're in a group card, if you are the owner of the group, you will be able to edit details. Otherwise, you can see all group details, such as name, description, and fellow members.
- Currently, the group calendar page has trouble loading all members' calendar events occasionally.
- The documentation for our testing is located in
./team/testing.md
.
- Fork it! Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -m 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request
Here is a link to our live testable version: https://project-t10-schedulecompiler.herokuapp.com/.
Please email lukewoolly02@gmail.com if you need access to the app.
License: MIT License