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.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