You have created a service.yml
file in the top directory of your repo. This will help us, and others, see everything available to run and use in your repo.
tools:
exceptions: https://...
logging: https://...
ci: https://...
services:
production: https://...
production_dashboard: https://
staging: ...
docs:
getting_started: https://...
commands:
bootstrap: script/bootstrap
database:
create: bin/rails db:create
migrate: bin/rails db:migrate
server: bin/rails server
This should serve as an example. These kinds of files can help you debug, record links to docs, services, tools, and more.
While this is less useful with one app, in an organization with many apps this can be crucial to remembering and finding information.
script/bootstrap
script, bin/bootstrap
script, or similar, available and able to be run on Unix systems (Sorry Windows Users).Write a script named script/bootstrap
, it should setup much of your system for you.
It is fine if the script targets one operating system (mac, linux, or windows).
Make note of this script in the README of your app. If you have a getting started guide, this can be in there but you should make sure that that guide is mentioned in the README.
Docker and Docker Compose is a good option here
brew bundle
, which comes from https://brew.sh/brew bundle
installed everything from the Brewfile
service.yml
. You should be able to run exactly what you list in your service.yml
file to run your tests. It is ok if you only test a hello world
app for now.You have CI setup to run your tests from (3).
You must have your app available online (if a web app) via a public URL. If you are not making a web app, you must have your app available via a compiled artifact in a GitHub Release for the teaching staff to install. We should not have to do anything than open the install file.
You can deploy to Heroku really easily with Ruby, Javascript, Python, Go, PHP, and other languages. - You only need the hobby dyno - I would recommend Postgres as there is a free hobby database you can use - This is not good to host your machine learning experiments - It is included in your GitHub Student Pack
This assignment helps you set up a software project in a scalable way. It is likely your first time implementing much of these aspects of a project, and it may seem tedious (it is). However, these are crucial to helping your team grow and will act like another person (catching all your bugs with tests!). You are encouraged to write tests along the way to help make sure you are not breaking your app.
We expect all CSC491/2600 students to actively participate and have thoughtful discussions. Technology lessons should be watched first in order to effectively complete this assignment.
You must create a release on your repo. This will give us a snapshot in time and allow us to grade it. See release body criteria and example below. Assignments without a coherent release body that follow the instructions in this assignment will be rejected and marked 1 day late.
Assignments are always due at 11:59:59pm Eastern Time.
Second, you must submit the release on the LearnSoftware application. You can find the submission location here: https://learnsoftware.engineering/my_assignments
Release bodies must include:
Section | Description | Worth |
---|---|---|
service.yml | Is present, error-free, and fully filled out. See notes below for more details on how to validate. | 10.0 |
script/bootstrap or similar | Functions on Unix systems (Linux and/or MacOS). Application is fully ready to run after running the script (dependencies installed, database install and setup, etc). The only exception is when you need to get credentials for something like a 3rd party API, that can be a different step. See Notes Below | 25.0 |
Testing and CI setup | Test harness works and can be run from a single command listed in the service.yml file. CI is running and is passing. If the test command is not listed in the service.yml, 0 pts will be awarded for this section. If the command fails to run before tests are executed, 0 pts will be awarded for this section. | 20.0 |
Production / Builds | Application is available from the web (e.g. Heroku, AWS, DigitalOcean, Azure, etc), as a mobile application via Microsoft App Center, or a GitHub Release otherwise. Exception tracking via Sentry and Logging is set up. See Notes Below | 20.0 |
Roadmap | Roadmap and Stack Decisions are updated with any new decisions and/or changes. Paragraph included in release covers progress and answers questions (-100% on this section if not included). | 10.0 |
Participation & Teamwork (Individual Grade) | Effectively worked as a team member and shared equitable work load during this assignment. Communication was regular and effective & acted in accordance with team principles. | 15.0 |
Total: | 100 |
service.yml
: This file must be in a specific format and be submitted with no errors. See https://learnsoftware.engineering/documents/3 for more details on this file.script/bootstrap
: You can run automated “bootstrap checks” from your repo’s profile in the Learn Software app. This functionality will run your script on Mac and Linux. It is not required for it to pass on both, but you should aim for it to pass on at least one of the systems.dotenv
pattern (.env
file contains all your env vars and secrets, search dotenv
and your language of choice for packages) where you provide a .env.example
file that you copy over to .env
on bootstrap if an existing .env
does not exist. This file contains default credentials to thing like a default mongodb instance on your local machine, fake credentials, etc.This scale is used for each line of the rubric above.
Rating | Result |
---|---|
Outstanding, Thoughtful and thorough | 100% of pts |
Strong, Provides some thought | 80% of pts |
Acceptable, Simple explanation | 60% of pts |
Insufficient, Little effort was made to give explanations | 40% of pts |
Unacceptable, No effort was made or the section was missing | 0% of pts |