Each of these projects will last for about 1/3 of the course. This page is here to provide you with overall expectations, requirements and guidelines for these projects to help direct you through this course.
This is an independent project that you will complete as you do your personal assignments for lessons 1-4 in this course.
Criteria | Weight | Mastery | Proficient | Developing | Beginning | Missing/Incomplete |
---|---|---|---|---|---|---|
100% | 90% | 78% | 65% | 0% | ||
HTTP Requests(Graded via YouTube) | 25% | Meets Proficient criteria and performs PUT request. MongoDB is updated | Meets Developing criteria and performs POST and DELETE requests. MongoDB is updated | Meets Beginning criteria and performs GET requests from MongoDB | Node project has evidence of http requests | GitHub link, or YouTube link not submitted. Or no evidence of HTTP requests |
API Documentation(Graded via YouTube) | 25% | Meets Proficient criteria and the swagger.json contains a contact schema that is used in all of the routes | Meets Developing criteria and the route: "/api-docs" is accessible and is able to test the endpoints | Meets Beginning criteria and the following routes are present in the swagger.json: GET all, GET by id, PUT, POST, and DELETE | Node project contains a swagger.json file with some content in it relevant to the "contacts" project | No API documentation present (no swagger.json or "api-docs" route in project for swagger) |
Deployment(Graded via YouTube) | 25% | Meets Proficient criteria and uses Render Config Vars (no database credentials stored in GitHub - must show GitHub repo in video) | Meets Developing criteria and video shows project functionality using Render (not localhost) | Meets Beginning criteria, project is deployed to Render and Render shows no errors | Render project has been created | Render link, GitHub link, or YouTube link not submitted |
Database(Graded via YouTube) | 15% | Meets Proficient criteria and the contacts in the database have the following fields: firstName, lastName, email, favoriteColor, and birthday | Meets Developing criteria and the contacts collection has at least five contacts | Meets Beginning criteria and MongoDB has a collection called "contacts" | MongoDB account exists and was demonstrated in the video | No evidence of database present or no YouTube link |
Architecture(Graded via GitHub) | 10% | Meets Proficient criteria plus includes a .rest file with routes for localhost and Render | Meets Developing criteria plus each route calls a function imported from a controller | Meets Beginning criteria plus server connects to routes in project "routes" folder using only a single line of code | Server file is present in root folder (server.js, index.js or app.js) to run the Node project | Render link not submitted |
| 10% | Meets Developing criteria and the backend PUT works on the frontend and the data change shows in MongoDB | Meets Developing criteria and the backend POST works on the frontend and the data change shows in MongoDB | Meets Beginning criteria and the backend DELETE works on the frontend and the data change shows in MongoDB | The backend GET works on the frontend | No attempt made or nothing works |
This is an independent project that you will complete as you do your personal assignments for lessons 5-8 in this course.
Criteria | Weight | Mastery | Proficient | Developing | Beginning | Missing/Incomplete |
---|---|---|---|---|---|---|
100% | 90% | 78% | 65% | 0% | ||
Deployed to the Web(Graded via YouTube) | 20% | 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) | 20% | 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 |
Database(Graded via YouTube) | 15% | Meets Proficient criteria and at least one collection features documents with at least 7 fields | Meets Developing criteria and database has at least 2 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 |
HTTP Requests(Graded via YouTube) | 15% | Meets Proficient criteria plus at least 2 collections have a PUT or DELETE request (MongoDB change is shown in video) | Meets Developing criteria plus at least 2 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 |
API Documentation(Graded via Render) | 10% | Meets Proficient criteria and the documentation can test each endpoint (GET, POST, PUT, DELETE are all modified when testing from the documentation) | 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 |
Error Handling(Graded via GitHub) | 10% | Meets Proficient criteria and each route has error handling, and returns some type of 400 or 500 status when 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 |
| 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 |
This is a team project that you will complete as you do your team assignments for lessons 9-13 in this course. Because of the scope of this project, you will not have any personal assignments for the duration of it so that you can focus all of your time on this team 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 |