In order to get ready to write productive code, complete the following steps during Sprint 0:
-
Create a new team and GitHub repository for your project using GitHub classroom.
Your associated cmu email should show up in a listing and you can link your GitHub account. Subsequent members should choose to join an existing team using the same link. Message us on Slack if you run into issues and we can add you directly.
You may want to name your repository something like
foobarbaz
, which will end up asdronuts-2024-foobarbaz
, aka your $respository_name.Your repository is made private to start, but we're ok with you making it public if you want. If you make it public, don't forget to add
.gitignore
andLicense
files! -
In addition, you should setup any tools needed for collaboration, issue tracking and project managment; Slack, Jira, GitHub Issues, ZenHub, Trello, whatever it is your team would like to use.
If you're new to Git and GitHub, we highly recommend reading the GitHub Documentation.
Enable Github Actions. To do this, these steps can be followed.
-
If you haven't already, install NodeJS and NPM on your computer.
-
Initialize your repository for NPM by running
npm init
. This will generate apackage.json
file in your repository.
Within the NodeJS runtime, there a many frameworks for creating server applications. For the purposes of this assignment, we recommend the Express Framework, which is a development framework with widespread adoption
-
You should install a linter for your repository, to help manage code style. We highly recommend eslint or tslint if you decide to use typescript.
To go a little further, we can use eslint-watch to automatically lint while we're programming:
Success Condition:
$ npm run lint (## which is calling esw -w src test) > ✓ Clean (10:12:27 AM)
-
Because NodeJS projects have many dependencies, it is massively beneficial to use a tool to detect dependency updates and alert you as to potential vulnerabilities. Normally, we would recommend using a SaaS tool like GreenKeeper or requires.io. However, if you're repository is private, these tools require payment. If that's the case, you should install npm-check.
Success Condition:
$ npm-check > ❤️ Your modules look amazing. Keep up the great work. ❤️
-
You should setup a test framework within your application to help with later test-driven development. We'd suggest Jest (especially for React development). Another option is to go with the Mocha framework along with Chai. Once installed, write a single test, which doesn't actually test anything (besides that your tests run).
Success Condition:
$ npm run test > PASS test/routes.test.js > GET / > ✓ should render properly (853ms) > GET /list > ✓ should render properly with valid parameters (48ms) > ✓ should error without a valid parameter (29ms) > GET /404 > ✓ should return 404 for non-existent URLs (61ms) > ...
-
Verify that the above tools and targets can be executed by Github Actions.
-
Document the above tools in your README. Also update this boilerplate once it's no longer needed.
Although Docker should already be configured (see Dockerfile
and docker-compose.yml
) as
necessary, you may need to install the Docker Daemon on your machine to properly
complete the assignment. Read the
get-started guide for downloading Docker
locally. If you're on a Linux OS, starting
here would be more helpful.
MAKE sure you do not install docker via snap. Snap's version of docker is outdated.