A tool for the UTD community to plan out their coursework 📚
Nebula Planner is a degree planning tool for UTD students.
Contributions are welcome! Join the Discord and request access to the Planner dev team.
This project requires Node v16+ and NPM installation. It also requires local environment variables since it uses Neon (hosted PostgresDB service), a SMTP server, and Discord as authentication provider.
git clone https://github.com/UTDNebula/planner.git
cd planner
npm install
Copy .env.example file
to .env
:
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 PostgreSQL.
Install the Neon CLI.
Run neonctl auth
and follow the on-screen prompts to login or create an account.
Run neonctl projects create --name planner-dev
to create a Neon project for Planner.
Copy the string listed under 'Connection Uri' (ex: postgres://my-user:[email protected]/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>"
Apply database migrations:
npx prisma migrate dev
Request PLATFORM_DATABASE_URL
from someone on the team.
Set NEXTAUTH_URL
to http://localhost:3000
and NEXTAUTH_SECRET=abc123
Setting up an auth provider. You need at least one of these to log in. We recommend you only add Discord for convenience.
Click on New Application
Type "planner"
Agree to their terms of service
Click to create
Click on OAuth2
Click on reset the secret
Click on "Yes, do it!" and copy the generated secret
Click on "Add Redirect"
Paste "http://localhost:3000/api/auth/callback/discord" into input
Click on save changes at the bottom
Copy and paste your secret and clientID (also on the OAuth2 page) into your .env
:
# Next Auth Discord Provider
DISCORD_CLIENT_ID=<discord-client-id-goes-here>
DISCORD_CLIENT_SECRET=<discord-secret-goes-here>
Click on Sign up for free and create your account
Click on Start Testing
Click on Nodemailer
Copy the host, port, user, and pass values.
Run and configure validator
cd validator
python3.11 -m venv venv # Create virtual environment
source venv/bin/activate # Use virtual enviornment
pip install -r requirements.txt # Install dependencies
flask --app api run
Add the validator to .env
:
# DEGREE VALIDATOR
NEXT_PUBLIC_VALIDATOR=http://127.0.0.1:5000
Setup pre-commit hooks:
npm run prepare
Generate Prisma
client and run web server:
npm run prisma:generate
npm run dev
Not sure where to start? Join the Discord to get help.
For more formal inquiries, send us a message at [email protected] with "[nebula-planner]" in the title.