Princeton Course Selection
-
git clone
this repository. Install Python 3.8, node.js, and pipenv (which helps you manage your dependencies). -
Run
cd courseselection && pipenv install
to install all of the current dependencies from Pipfile.lock. -
Run
cd frontend && npm install
to install the necessary node modules for React to work. -
Run
cd .. && cp .env-example .env
. Then, set the environment variables in your.env
file; specifically, you should replace the value ofDATABASE_URL
with the proper database URL for your Postgres server. You should also fill in theTIGERBOOK_USERNAME
andTIGERBOOK_API_KEY
fields if you want the prepopulation of the user's year and major in the onboarding flow to work (you can get a TigerBook API key by following the instructions here). -
You can start a server with the environment variables in the file
.env
by runningpipenv run python manage.py runserver
. For development, run the webpack server (React) along with the Django server by callingnpm start
in the folder "frontend". Then you can navigate tohttp://localhost:8000/
to see the app.
If you're using pipenv
and you want to run one of the following commands, you should prefix it with pipenv run
to make sure you're using the settings in your .env
file. You can also run pipenv shell
, which allows you to run the commands directly without prefixing.
You can do this by running the following commands:
python manage.py makemigrations # Makes migrations based on models.py
python manage.py migrate # Migrates the database
python manage.py courseselection_get_courses # Scrapes courses and puts them in the database
To load the major mappings fixture, which populates the major table in the database, run the following command:
python manage.py loaddata major_mappings
Heroku deploys are set up to happen automatically based on the code in GitHub. You shouldn't need to deploy manually.
However, in the rare case that you do, then you can run the following command:
git push heroku <local_branch_name>:master # Push to the Heroku server
Admin setup - through Django
- Django v.
- Node v.
- Python 3.8.
TigerPath is a web app that helps Princeton University students plan out their four-year course schedules. It began as a COS 333 project by Richard Chu, Barak Nehoran, Adeniji Ogunlana, and Daniel Leung. tigerpath.io
PrincetonCourses
Recal
PrincetonPounce