/planner

A tool for the UTD community to plan out their coursework.

Primary LanguageTypeScriptMIT LicenseMIT

Nebula Planner

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

About

Overview

Nebula Planner 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 Planner 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 Neon (hosted PostgresDB service), 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

Adding environment variables

Copy the contents of the .env.example file at the root of the repo to a new file called .env.


Setting up Neon

Neon is a hosting service for PostgresDB.

  1. Install the Neon CLI.
  2. Run neonctl auth and follow the on-screen prompts to login or create an account.
  3. Run neonctl projects create --name planner-dev to create a Neon project for Planner.
  4. Copy the string listed under 'Connection Uri' (ex: postgres://my-user:my-password@my-project-id.us-east-2.aws.neon.tech/neondb) and update the DATABASE_URL and DIRECT_DATABASE_URL variables in your .env file, as shown below.
# Prisma
DATABASE_URL="<your connection uri here>"
DIRECT_DATABASE_URL="<your connection uri here>"

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.


Installing dependencies and seeding the database

npm install
npm run build
npm run dev

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

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 Nebula Labs, join the Nebula Labs discord.

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