Clockwork is a website built to simplify the experience of searching courses and building timetables for the University of Victoria (UVic). The website is a TypeScript app which uses React on the front-end and Firebase on the back-end.
- Fork the repo
- Clone your forked repo:
git clone https://github.com/<YOUR GITHUB USERNAME>/clockwork.git
- Make the project repository the upstream remote:
git remote add upstream https://github.com/VikeLabs/clockwork.git
- Run
npm install
- NOTE: You must be using NPM v6 due to a bug in a dependency.
- Find an unassigned task on ZenHub to work on.
- Filter repos to show issues for
clockwork
- Filter repos to show issues for
- Run
npm start
to view any front-end changes onlocalhost:3000
- Create a new branch using
git checkout -b <branch-name>
(make sure it's up to date withmain
) - Commit the changes you've made and push to GitHub to create a Pull Request.
This project uses Jest testing framework. You can execute tests by running npm test
.
This will execute tests using Jest files with the extension *.test*
.
npx jest --watch
will put Jest into watch mode, which will execute tests as files change.
When developing in your local environment, to view components which require requests to populate with data you will need to enable CORS. Install the following extension to do so:
For Safari: Preferences >> Advanced, and select "Disable Cross-Origin Restrictions" from the develop menu.
The website uses the npm package uvic-course-scraper
. The package is a web-scraping tool made with TypeScript that is the main way of extracting data from UVic. It is contributed to and maintained by the original development team of clockwork
.