Coursemap will be a web app that aims to guide students through the difficulty of choosing courses during university.
The project tracking this repository on Vercel can be found at this link. A simple description is below, but the complete documentation can be found here.
Some features to be implemented include:
- Informational cards for courses at supported universities
- Automatically add all required courses for your program
- Visualizing course prerequisites and the possible paths using courses you already have
- Organizing courses by semester
- Searching and filtering of courses based upon your keywords and attributes
- Adding your own courses in case your university is not supported
⚠️ Coursemap is still under very active development!
Many of the features mentioned above are still in progress!
To deploy Coursemap, you can simply use the following Docker compose file and an .env file:
services:
coursemap:
image: ghcr.io/allanhechen/coursemap:latest
environment:
DEPLOYMENT_TYPE: ${DEPLOYMENT_TYPE:-docker}
POSTGRES_URL: ${POSTGRES_URL:-postgresql://postgres:password@postgres:5432/postgres}
AUTH_URL: http://localhost:3000/api/auth
AUTH_TRUST_HOST: 1
ports:
- "3000:3000"
depends_on:
- pg_proxy
env_file:
- .env
postgres:
image: postgres:16.4
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
ports:
- "54320:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data
env_file:
- .env
pg_proxy:
image: ghcr.io/neondatabase/wsproxy:latest
environment:
ALLOW_ADDR_REGEX: ".*"
LOG_TRAFFIC: "true"
ports:
- "54330:80"
depends_on:
- postgres
DEPLOYMENT_TYPE=docker
POSTGRES_PASSWORD=password
POSTGRES_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
# generate your own key by running "openssl rand -base64 32"
AUTH_SECRET="your_secret_here"
# add your own app with information from https://github.com/settings/applications/new
# detailed instructions at https://authjs.dev/guides/configuring-github
AUTH_GITHUB_ID="your_id_here"
AUTH_GITHUB_SECRET="your_secret_here"
- Install Docker
- We will be using Docker for a local Postgres database, in addition to routing the database traffic through a proxy to emulate Vercel's serverless environment.
- Clone this repository
git clone https://github.com/allanhechen/coursemap.git
cd coursemap
- Install npm dependencies
npm i
- Run the development server
npm run dev
- Head to port 3000
Thanks for reading this far into the documentation! This is my first open source project, so don't be intimidated to help!
Coursemap is built mainly using Next.js and Postgres, with Docker as an option to avoid setting up Vercel's serverless environment.
To get started, follow the instructions 1-3 above but run npm run dev
as the last command.
I am doing my best to document all of my decisions and the logic behind the code, extensive docs can be found here.
Coursemap is licensed with AGPL-3.