Skip to content
This repository has been archived by the owner on Apr 5, 2024. It is now read-only.
/ planner Public archive
forked from UTDNebula/planner

A tool for the UTD community to plan out their coursework. Dev branch: https://dev.planner.utdnebula.com/

License

Notifications You must be signed in to change notification settings

sudoer777/planner

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nebula Web

Nebula Web is a tool for planning out students' college experience

Commitizen friendly

About

Overview

Nebula Web allows students to plan out including coursework, co-curricular activities like studying abroad and research, and extracurricular involvement in student organizations. It does this with an intuitive drag-and-drop interface that represents various college activities as blocks and displays them in semester groups.

Inspiration

Planning coursework poses a challenge for many.

From choosing the right professors to knowing when to take a class, schedule planning is the bane of any college student.

UTD students have access to tools like UTD Grades and Rate My Professors to help them pick classes for a specific semester, but there hasn't been a solution that allows a student to say, "I want to major in CS, minor in psychology, and do a few internships before grad school. Generating a plan lets me do all of that with the professors I want."

Until now, that is.

Nebula Web is an integrated solution designed to help students plan out their entire undergraduate experience in one place. It allows students to focus on ensuring their college experience holistically suits their desires and optimize for long-term success.

Features

  • Drag-and-drop interface for planning coursework by semester for any degree plan
  • Sign in to save data across planning sessions
  • Export to file to share your custom plan with someone else

Contributing

Contributions are welcome!

This project uses the MIT License.

Process

To get started, see the contribution guide. It'll tell you everything you need to know.

Additionally, see the Project Nebula-wide contributors guide for more info.

Once you're ready to make some changes, see the issues for the repository.

If you want to brainstorm, share ideas or ask questions, start a discussion in the Discussions section.

Set-up

This project requires a working Node.js and NPM installation. It also requires local environment variables since it uses MongoDb Atlas, a SMTP server and Discord as authentication provider.

To start, clone the repository, and obtain the required environment keys as explained below.

git clone https://github.com/UTDNebula/planner.git
cd planner

Setting up MongoDB

  1. Go to Database Deployments | Cloud: MongoDB Cloud

  2. Create account and complete signup.

  3. Click on Build a Database Step 2 screenshot

  4. Click on CREATE FREE… Step 3 screenshot

  5. Click on Create Cluster Step 4 screenshot

  6. Click on Create User Step 10 screenshot

  7. Click on Add My Current IP Address Step 12 screenshot

  8. Click on Finish and Close Step 13 screenshot

  9. Click on dialog Step 14 screenshot

  10. Click on Connect Step 15 screenshot

  11. Click on Connect your application… Step 16 screenshot

  12. Copy the generated connection string Step 17 screenshot


Obtaining API Keys for Auth Providers

Discord
  1. Go to Discord Developer Portal — My Applications

  2. Click on New Application Step 2 screenshot

  3. Type "planner" Step 3 screenshot

  4. Check By clicking Create, you agree to the Discord Developer Terms of Service and Developer Policy. Step 4 screenshot

  5. Click on Create Step 5 screenshot

  6. Click on OAuth2 Step 6 screenshot

  7. Click on Reset Secret Step 7 screenshot

  8. Click on Yes, do it! and copy the generated secret Step 8 screenshot

  9. Click on Add Redirect Step 9 screenshot

  10. Paste "http://localhost:3000/api/auth/callback/discord" into input Step 10 screenshot

  11. Click on Save Changes Step 11 screenshot

Setup mailing server

  1. Go to Mailtrap: Email Delivery Platform

  2. Click on Sign up for free and create your account Step 2 screenshot

  3. Click on Start Testing Step 6 screenshot

  4. Click on Nodemailer Step 7 screenshot

  5. Copy the host, port, user, and pass values.


Adding environment variables

Create a file called .env in the root directory and add your personal env keys

# Prisma MongoDB
DATABASE_URL=REPLACE_ME

# Next Auth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=abc
# Next Auth Discord Provider
DISCORD_CLIENT_ID=REPLACE_ME
DISCORD_CLIENT_SECRET=REPLACE_ME

# Email Server
EMAIL_SERVER_HOST=REPLACE_ME
EMAIL_SERVER_PORT=REPLACE_ME
EMAIL_SERVER_USER=REPLACE_ME
EMAIL_SERVER_PASSWORD=REPLACE_ME
EMAIL_FROM=noreply@nebulaplanner

# DEGREE VALIDATOR
VALIDATOR=REPLACE_ME

NODE_ENV=development
  1. Make sure to replace the password in the DB Connection string with the password of the root user you created while setting up MongoDB.
  2. Replace the ? in the MongoDB connection string with its equivalent urlEncode value, i.e., %3F.

MongoDB Connection String


Installing dependencies and seeding the database

npm install
npx prisma db push
npx prisma db seed
npm run dev

This will generate the DB schema, seed the DB and run a local development server on localhost:3000 by default.

Check out this blog to learn about the stack we are using and a basic overview of the codebase.

Contact

This project is maintained by Nebula Labs, which is an open-source initiative to build projects that improve student life at UTD. If you have any questions about this project or Project Nebula, join the Nebula Labs discord.

For more formal inquiries, send us a message at core-maintainers@utdnebula.com with "[nebula-web]" in the title. Please be as detailed as possible so we can best assist you.

About

A tool for the UTD community to plan out their coursework. Dev branch: https://dev.planner.utdnebula.com/

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 93.7%
  • CSS 3.1%
  • JavaScript 1.7%
  • HTML 1.4%
  • Shell 0.1%