moulik-deepsource / coursetable

Code powering the CourseTable website

Home Page:https://coursetable.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Coursetable

Maintainability GitHub commit activity GitHub contributors HitCount

Coursetable is made of two big parts:

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

Repository Layout

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.
  • /web: PHP scripts migrated from the old site.
  • /proxy: Proxy configuration for relaying connections between services (e.g. authentication headers, CAS cookies, etc.)
  • /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.

Architecture

See this architecture diagram.

How to develop

Check out the getting started guide.

Contributing

Contributing code:

  1. Create a branch for your feature. This can usually be done with git checkout -b <username>/<feature_name>
  2. make changes.
  3. Create some commits and push your changes to the origin.
  4. Create a pull request and add a few reviewers. In the pull request, be sure to reference any relevant issue numbers.
  5. Once the pull request has been approved, merge it into the master branch.

Style:

For different languages:

  • TypeScript & JavaScript: We use prettier to automatically format the code. Make sure you use your editor's integration!
  • PHP: We use PHP CodeSniffer to maintain coding standards; generally, it's 4 spaces for tabs, camelCase for variables, and follow whatever else that's in use right now.

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.

Setting up and deploying to prod

Check out How to deploy.

powered-by-vercel

About

Code powering the CourseTable website

https://coursetable.com

License:MIT License


Languages

Language:TypeScript 63.6%Language:JavaScript 26.6%Language:CSS 3.5%Language:HTML 3.1%Language:Shell 2.5%Language:PHP 0.7%Language:Dockerfile 0.0%