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.
bin/bootstrapscript, 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 bundleinstalled everything from the
service.yml. You should be able to run exactly what you list in your
service.ymlfile to run your tests. It is ok if you only test a
hello worldapp 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.
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:
|Is present, error-free, and fully filled out. See notes below for more details on how to validate.||10.0|
|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
|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.
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.
.envfile contains all your env vars and secrets, search
dotenvand your language of choice for packages) where you provide a
.env.examplefile that you copy over to
.envon bootstrap if an existing
.envdoes 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.
|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|