Welcome to lesson thirteen! Congrats on making it to the end of the course! In this lesson, you will complete, publish and submit your final projects. The new content in this lesson however, is not as technical as it has been all semester long. Instead, the lesson content is of a more professional nature, intended to help you start thinking about applying what you've learned to getting an awesome job.
Resources for this lesson are accessible to you in this repository
Here are some questions you should be prepared to answer for yourself:
Here are some questions you should be prepared to answer in an interview regarding the technologies taught in this class:
Purpose: Gain experience working in a team as a backend developer.
Task: Complete the assignment.
By the end of this assignment the student will be able to do the following:
For this assignment, you will complete your final project.
Criteria | Weight | Mastery | Proficient | Developing | Beginning | Missing/Incomplete |
---|---|---|---|---|---|---|
100% | 90% | 78% | 65% | 0% | ||
Deployed to the Web(Graded via YouTube) | 15% | Meets Proficient criteria and video shows use of Render CONFIG VARS to connect to MongoDB | Meets Developing criteria and app connects to MongoDB | Meets Beginning criteria and Render url can be opened without any errors | Node.js app deployed to Render | Render link or YouTube link not submitted |
OAuth(Graded via YouTube) | 15% | Meets Proficient criteria and the video shows that each protected route (needs authentication) requires authentication before access | Meets Developing criteria and user can log out using OAuth | Meets Beginning criteria and user can log in using OAuth | Evidence of OAuth is in the Node.js project | GitHub link or YouTube link not submitted, or No evidence of OAuth in project |
HTTP Requests(Graded via YouTube) | 15% | Meets Proficient criteria plus at least 4 collections have a PUT or DELETE request (MongoDB change is shown in video) | Meets Developing criteria plus at least 4 collections have a POST request (MongoDB change is shown in video) | Meets Beginning criteria plus at least one HTTP Request is present for each collection in the database | Several HTTP Requests are in the project and work (shown in video) | GitHub link, Render link or YouTube link not submitted, or no evidence of HTTP Requests |
Testing(Graded via YouTube and GitHub) | 15% | Meets Proficient criteria and unit tests exist and pass for main server.js file and .js files in routes folder | Meets Developing criteria and YouTube video shows all tests running and passing | Meets Beginning criteria and GitHub shows at least one unit test file for each .js file in the controllers folder | GitHub shows that at least one unit test file exists (".spec.js") | GitHub link or YouTube link not submitted, or No evidence of unit testing in project |
Database(Graded via YouTube) | 10% | Meets Proficient criteria and at least one collection features documents with at least 7 fields | Meets Developing criteria and database has at least 4 collections | Meets Beginning criteria and database has a single collection | Database exists and is shown in the video | GitHub link or YouTube link not submitted, or No evidence of Database in project |
API Documentation(Graded via Render) | 10% | Meets Proficient criteria and the documentation can test each endpoint (video should show MongoDB being updated | Meets Developing criteria and the documentation is published (either to Render at "/api-docs" route, or to apollo server) | Meets Beginning criteria and documentation is organized by collection | The swagger.json file is present (or Apollo server is shown in video for graphql extra credit) | Render link, GitHub link, or YouTube link not submitted. Or no evidence of API documentation |
Data Validation(Graded via GitHub) | 10% | Meets Proficient criteria and each route has data validation, and returns some type of 400 or 500 error if data requirements aren't met | Meets Developing criteria and data validation is being used for each PUT and DELETE route | Meets Beginning criteria and data validation is being used for each GET and POST route | Node project has evidence of data validation (for example: checks for at least one variable's existence before continuing) | GitHub link or Render link not submitted. Or no evidence of Data Validation |
Error Handling(Graded via GitHub) | 10% | Meets Proficient criteria and each route has error handling, and returns some type of 400 or 500 errors get thrown | Meets Developing criteria and error handling is being used for each PUT and DELETE route | Meets Beginning criteria and error handling is being used for each GET and POST route | Node project has evidence of error handling (for example: at least one try/catch) | GitHub link or Render link not submitted. Or no evidence of Error Handling |
| 20% | Meets Proficient criteria and REST is not used at all, only GraphQL (should be shown in YouTube video) | Meets Developing criteria and project uses GraphQL to access and modify MongoDB (should be shown in YouTube video) | Meets Beginning criteria and project uses GraphQL for some aspects (should be shown in YouTube video) | GitHub link (perhaps in previous commits) and YouTube video show that GraphQL was attempted | GitHub link, Render link, or YouTube link not submitted |
| 20% | Meets Proficient criteria and there is not a single file in project with ".js" extension. All JavaScript files have been replaced with error-free TypeScript (.ts) files | Meets Developing criteria and project uses TypeScript for all files in "controllers" folder | Meets Beginning criteria and project uses TypeScript for some aspects (should be shown in YouTube video and evident in GitHub repository) | GitHub link (perhaps in previous commits) and YouTube video show that TypeScript was attempted | GitHub link, Render link, or YouTube link not submitted |