Visit the site here.
Keep track of the statuses of the various dining locations across Carnegie Mellon University. Quickly access the menus and specials at each location without having to go through the arduous process of visiting the CMU Dining Website. The following are some instructions and (hopefully useful) hints on the CMUEats development process. Don’t be afraid to ask questions if you are stuck!
-
Join CMUEats’ Slack channel (
#tech-cmueats
) in the ScottyLabs Slack. Feel free to also put questions in there. -
Create an account on Github. Later, you should also apply to get access to the Github Student Developer Pack.
-
To start developing, you'll need to download Bun.js, Git, and an IDE (I recommend VSCode). You should also download Github Desktop to make development easier at the beginning. I recommend checking out Learn Git Branching later.
-
If you followed my IDE recommendation, also download the Prettier VSCode extension.
-
Any of the following steps where you type something (i.e. git clone…, bun install, etc.) should be done in your IDE’s terminal.
-
Then, clone this repository to your computer by running
git clone https://github.com/ScottyLabs/cmueats.git
after making sure you have git downloaded or runninggh repo clone ScottyLabs/cmueats
if you have the Github CLI. -
Now use
git fetch upstream
. -
Do the same for the dining API in a new location. This time, replace
https://github.com/ScottyLabs/cmueats.git
withhttps://github.com/ScottyLabs/dining-api.git
andScottyLabs/cmueats
withScottyLabs/dining-api
. -
If you already have the node_modules folder or package-lock.json from previous versions of the Dining API, please remove them before continuing.
-
Now install the CMUEats dependencies by 'cd'-ing into the root of the location where you cloned CMUEats and running
bun install
. -
Now run the code with
bun start
and it should work! Just click on the link that appears and you’’ll see the web app. You can also usebun run start
sincebun start
is its shorthand version -
Now follow the installation steps for the dining API as well (steps 9 to 12).
-
To find bootcamp issues you can work on, please visit the CMUEats issues page or the dining API issues page.
-
For every new issue or change you work on, first make sure your local repo is up-to-date with the ScottyLabs repo. To do this, go to your repo on your Github profile and click
Sync fork
if you are behind the main repo in commits. Then usegit pull origin main
in your IDE. Then typecd main
in the local repository (folder containing all the code) for CMUEats or the dining API then typegit checkout -b branch-name
, wherebranch-name
is the branch you want to work on (see Learn Git Branching). To work on changes to a branch you already created, usegit checkout branch-name
, wherebranch-name
is the branch you already created. Make sure to usegit checkout main
every time you are ready to create a new branch. -
When you want to commit changes, first stage changes with
git add .
. Then, usegit commit -m "commit message"
(alternatively commit using Github Desktop). To undo commits, usegit reset --hard (HEAD~# or commit-id)
(--hard
removes staged and unstaged changes after commit chosen to reset to;--soft
keeps changes in working directory and keeps reset commits in staging area). Replace#
with the number of commits you want to go back by. Similarly, using@{#}
instead of~#
undos the reset (not necessarily just simplified). When you are ready to push changes, usegit push -u origin branch-name
. To push new commits after this, usegit push -f
instead. -
When you want to create a pull request for your changes, go to the ScottyLabs repo on the Github website and click on
Pull Requests
. Click onNew Pull Request
. On the right side, click on your repo’s branch you want to merge from, and, on the left side, make sure you have ScottyLabs’main
branch selected. Create a description then create the pull request. Feel free to request reviewers or ask a tech lead directly, so they can review your pull requests and requests changes or merge it.
Note that GitHub will automatically run checks (workflows) on your PR. This includes code linting (with tsc and eslint) and verifying that all unit tests in /tests
pass with vitest.
- To run unit tests locally, type
bun test
.
Note: To add new dependencies, use bun add dependency-name
. To remove dependencies, use bun remove dependency-name
. Run bun outdated
to see what dependencies are outdated and bun update
to update all outdated dependencies to the latest version.