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 running gh 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
with https://github.com/ScottyLabs/dining-api.git
and ScottyLabs/cmueats
with ScottyLabs/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 use bun run start
since bun 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 use git pull origin main
in your IDE. Then type cd main
in the local repository (folder containing all the code) for CMUEats or the dining API then type git checkout -b branch-name
, where branch-name
is the branch you want to work on (see Learn Git Branching). To work on changes to a branch you already created, use git checkout branch-name
, where branch-name
is the branch you already created. Make sure to use git 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, use git commit -m "commit message"
(alternatively commit using Github Desktop). To undo commits, use git 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, use git push -u origin branch-name
. To push new commits after this, use git 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 on New 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.
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.