Coursetable is made of two big parts:
- Website: The site you see when you go to coursetable.com. The code for this – the front-end site as well as the various back-end scripts that handle user actions – is contained within this repository.
- Crawler: The scripts behind the scenes that actually get all the data from Yale’s websites. The code for this is in our ferry repository.
The various functions of the website are compartmentalized as follows:
/api
: An Express server for backend logic./frontend
: The current face of the site, built with React./docker
: Configuration files for running everything together in Docker./legacy
: Static HTML files from the old site./scripts
and/sysadmin
: Administration scripts and bootstrapping tools.
Check out the getting started guide.
Contributing code:
- Create a branch for your feature. This can usually be done with
git checkout -b <username>/<feature_name>
- make changes.
- Create some commits and push your changes to the origin.
- Create a pull request and add a few reviewers. In the pull request, be sure to reference any relevant issue numbers.
- Once the pull request has been approved, merge it into the master branch.
Style:
TypeScript & JavaScript: We use prettier to automatically format the code. Make sure you use your editor's integration!
We have automated checks set up that will run for every commit and pull request.
Roadmap:
We use GitHub issues to track bugs and feature requests: https://github.com/coursetable/coursetable/issues.
We use GitHub projects to manage everything and do planning: https://github.com/orgs/coursetable/projects/2.
Check out How to deploy.