
Overview
For this project, you’ll build a Node/Express/MongoDB application with full CRUD. You get to decide what you want to build as long as it meets the technical requirements outlined below.
You will work individually on this project.
❗️ As a reminder, General Assembly has a zero-plagiarism policy. Your project’s code must be substantially yours. Do not copy code from similar projects or other sources. However, using code from the internet to accomplish generic tasks is okay - for example, a line of code that replaces a character at a specific position in a string.
A printable PDF version of these project requirements can be found here.
Technical requirements
MVP
✅ Any items marked incomplete in this section will require you to use your one redo to re-submit them. Your app must fulfill the below requirements.
- The app utilizes EJS Templates for rendering views to users.
- The app uses session-based authentication.
- The app’s files are organized following the conventions taught in lectures.
- The app has at least one data entity in addition to the User model. At least one entity must have a relationship with the User model.
- The app has full CRUD functionality.
- Authorization is implemented in the app. Guest users (those not signed in) should not be able to create, update, or delete data in the application or access functionality allowing those actions.
- The app is deployed online so that the rest of the world can use it.
Code convention
✅ More than two items marked incomplete in this section will require you to use your one redo to re-submit them. If two or fewer items are marked incomplete, the project is considered passing. Your app must fulfill the below requirements.
- The app runs without errors in both the terminal and the browser console.
- The code in the app adheres to coding conventions covered in lessons, like using plural names for arrays.
- The app follows RESTful routing conventions for routes.
- The app does not contain dead code, commented-out sections, or console logs.
- The app is coded using proper indentation.
UI/UX
✅ More than two items marked incomplete in this section will require you to use your one redo to re-submit them. If two or fewer items are marked incomplete, the project is considered passing. Your app must fulfill the below requirements.
- Your app exhibits a visual theme, like a consistent color palette and cohesive layout across pages.
- CSS Flexbox or Grid is utilized for page layout design.
- The site is easily navigable by a first-time user. For example, navigation should be done through links instead of having to type in a URL to navigate around the app.
- Colors used on the site have appropriate contrast, meeting WCAG 2.0 level AA standards.
- When editing an item, the form is pre-filled with that item’s details.
- Only the user who created data can see and interact with the UI for editing or deleting that data.
- All images on the site have
alt text.
- No text is placed on top of an image in a way that makes the text inaccessible.
- All buttons are styled.
Git and GitHub
✅ Any items marked incomplete in this section will require you to use your one redo to re-submit them. Your interactions with Git and GitHub must fulfill the below requirements.
- You are shown as the only contributor to the project on GitHub.
- The GitHub repository used for the project is named appropriately. For example, names like book-binder or wellness-tracker are appropriate names, whereas ga-project or men-stack-project are not. The repo must be publicly accessible. Be sure to create the repo on your personal GitHub account and ensure that it is public.
- Your repo should have commits that date back to the very beginning of the project. If you start over with a new repo, do not delete the old one.
- Commit messages should be descriptive of the work done in the commit.
README requirements
✅ More than two items marked incomplete in this section will require you to use your one redo to re-submit them. If two or fewer items are marked incomplete, the project is considered passing. Your README must contain the items or sections below.
- Screenshot/Logo: A screenshot of your app or a logo.
- Your app’s name: Include a description of your app and its functionality. Background info about the app and why you built it is a nice touch.
- Getting started: Include a link to your deployed app and a link to your planning materials.
- Attributions: This section should include links to any external resources (such as libraries or assets) you used to develop your application that require attribution. You can exclude this section if it does not apply to your application.
- Technologies used: List of the technologies used, for example: JavaScript and any major frameworks or libraries.
- Next steps: Planned future enhancements (stretch goals).
Presentation requirements
✅ Any items marked incomplete in this section will require you to use your one redo to re-submit them.
- Present your project in front of the class on the scheduled presentation day.
- The project you present is the project you were approved by your instructor to build.
Evaluation
Upon completion of your presentation, your instructional team will evaluate your project.
- Your instructors will be using the above guidelines to determine whether or not the project passes all of the minimum requirements.
- If your instructors determine that the project does not meet the minimum requirements, you may be provided the opportunity to address the deficiencies identified and re-submit the project. However, be aware that there is only a single opportunity to re-submit a project during the course. Please reach out to your student success specialist if you have questions.
- Immediately after your presentation, your instructors may provide you with feedback that will benefit your project and perhaps the projects of other students. The feedback given at this time is not formal feedback and does not indicate whether you passed or failed the project.
- If there is a specific section of code that you would like an instructor to provide additional feedback on, please ask!