Setup
Planner requires Node v16+ and Python3.10. It also requires local environment variables since it uses Neon (hosted PostgresDB service), a SMTP server, and Discord as authentication provider.
Pre-requisites
To be able to start development on Planner make sure that you have the following pre-requisites installed:
Installation and Configuration
Clone repository and install web dependencies:
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:my-password@my-project-id.us-east-2.aws.neon.tech/neondb
) and update theDATABASE_URL
andDIRECT_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 the
NEXTAUTH_URL
tohttps://localhost:3000
.Setting up an auth provider. You need at least one of these to log in. We recommend you only add Discord for convenience.
Run and configure validator
Create a virtual environment:
cd validator python3.10 -m venv venv # Create virtual environment
Activate the virtual environment:
- Windows:venv\Scripts\activate
- Linux/macOS:source venv/bin/activate
Install dependencies:
pip install -r requirements.txt
Run the validator:
flask --app api run
Add the validator to
.env
:# DEGREE VALIDATOR VALIDATOR=<http://localhost:50020>
For any unused variables in your
.env
file, just leave them blank.Generate
Prisma
client and run web server:
# Run these in the root directory. npm run prisma:generate npm run dev