In order to get ready to write productive code, complete the following steps during Sprint 0:
foobarbaz
, which
will end up as dronuts-2019-foobarbaz
, aka your $respository_name.We're ok with you keeping your project public, but you can make it private if you so desire. Don't
forget to add .gitignore
and `License** files!
If you're new to Git and GitHub, we highly recommend reading and running through these two links:
If you haven't already, install NodeJS and NPM on your computer.
Initialize your repository for NPM by running npm init
. This will generate a package.json
file in your repository.
Within the NodeJS runtime, there a many frameworks for creating server applications. For the purposes of this assignment, there are two options you should consider:
Option 1: Express
The Express Framework is a general-purpose web
development framework with widespread adoption.
Option 2: Loopback
The Loopback Framework is a purpose-built REST API framework, with a smaller user base.
As a deliverable of sprint 0, you will be asked to compare these frameworks. You should familiarize yourself with both projects in order to justify your decision. Once the decision is made, install it in your groups repository.
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 TravisCI.
Document the above tools in your README. Also update this boilerplate once it's no longer needed. We also recommend embedding the build status image from Travis CI, to make it easier to track the status of your build.
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.You should have received an email about signing-up/accepting a assignment/lab from Microsoft, related to the class and registering with azure. Let us know if you haven't. We recommend using the Azure Cli to access your account info.
Using your Azure credentials, follow these instructions to manually setup a Virtual Machine suitable for running Docker with the following considerations:
myvm
use your project team name as your Docker Machine name.docker-machine create -d azure \
--azure-subscription-id $sub \
--azure-ssh-user azureuser \
--azure-open-port 80 \
--azure-resource-group cmu-17-356 \
--azure-size "Standard_A1_v2" \
$repository_name
.travis.yml
.cp -r "$DOCKER_CERT_PATH" ./azure
to copy your deployment certificates
into your repository. Otherwise, you can run cp -r ~/.docker/machine/machines/$repository_name/* ./azure
This should enable automatic deployment via Travis CI!