Capstone Project Overview
You have to trust your team.
Yvette Johnson-Rodgers, Cohort 20
Overview
The capstone project will be a site designed around a central theme, which must be a viable business model. A viable business model does not necessarily require the model to be profitable. But it does require that the site have a real-world application and be viable for immediate deployment. Some example of viable business models are:
- Map of local restaurants
- Recipe database
- Map of New Mexico hiking trails
- Local events calendar
- Job posting site
Any theme that can be applied to a viable business model can be used. The models listed above are examples and are by no means exhaustive.
Examples
Sprints & Tickets
The capstone project shall be divided into four sprints, each of which will have a duration of approximately two weeks. The sprints are:
- Sprint 1: Planning, and Wireframes
Create your user-driven design documentation, and plan the layout for your site. - Sprint 2: React Static UI
Create the Static Layout of the site without any external data using React - Sprint 3: REST APIs And Data Design
detail what data is being stored, and Create API endpoints to expose data from the database. - Sprint 4: Tying It All Together
Wire the React Static Frontend to pull data from the RestAPIs and add the final polish
Each individual team member is expected to build the full behavior for at least one entity, which includes the tickets relevant for that entity in each sprint. Other team members may help on these tickets by helping debug or suggesting how to write the code for those tickets, but the team member who is responsible for the entity is the only team member who is allowed to be at the keyboard while writing the code or make git commits for that entity.
In each sprint, each team member will be responsible for several tickets. Each ticket will consist of approximately eight hours of work to complete. Tickets will be signed off by instructors if and only if the following are true:
- The ticket's functionality is complete
- The code is fully commented and includes all required doc blocks
- All applicable unit tests are present and pass with sufficient coverage (normally ≥ 80% coverage)
The team may not proceed to the next sprint until all members have completed all their outstanding tickets. In the event one or more members cannot complete outstanding tickets, additional team members will be deployed to help complete the outstanding tickets.
Employer Roundtable
Each group will give a 10-12 minute presentation on their project to a group of employers from the development community. This is a chance for the team to show off what they did, make a good impression, and build their professional network.
Presentations may include the following topics
- Introduction of the team members (required)
- The main idea and audience for the project (required)
- The technology used in the project (required)
- Next steps for the project, including monetization
- Project management
- Database design
- Version Control
- Hosting/Containerization
Each team member is required to participate in this presentation. Failure to participate in the presentation will result in failure of the capstone and bootcamp.
Technologies
Table 1 depicts the technologies used in the capstone project. Use of optional technologies will be done sparingly and at the discretion of the instructors. Overuse of optional technologies detracts from the coverage of required technologies. Optional technologies will only be deployed when use cases lend themselves to the use of optional technologies. Optional technologies will NOT be deployed for the sake of deploying additional technologies.
Required Technologies | Optional Technologies | |
---|---|---|
HTML 5 | No use of deprecated tags Includes fully accessible forms Full use of semantic tags | Uses the <audio> tagUses the <canvas> tagUses the <video> tag |
CSS | All styling done in CSS Appropriate use of selectors Consistent use of fonts Uses Bootstrap for a mobile first user experience | Uses animation Uses custom configurations of Bootstrap Uses CSS Templating such as LESS or SASS |
JavaScript | Uses React Uses form validation package Uses AJAX to load results without reloading the page | Uses additional JavaScript packages, plugins, etc. Uses any other JavaScript libraries or frameworks from NPM |
Express | Includes/requires library files Uses external API using JSON/XML† APIs Uses Functional Programming Principles Uses-Model-View Controller (MVC) design pattern Uses Data Access Object (DAO) design pattern | Uses Functional Composition Uses stateful sessions |
MySQL | Uses all major relations (1-to-1, 1-to-n, and n-to-m) Full Entity Relationship Diagram (ERD) | Uses stored procedures or MySQL functions |
Security | Full CSRF/XSRF protection compatible with React No passwords pushed to GitHub Full input sanitization designed to counteract XSS attacks using React, and HTML 5 Passwords salted and stretched using current algorithms | Uses external authentication from another service using OAuth |
† JSON preferred. XML considered only if JSON is unavailable.
Example
You can find a sample capstone on GitHub at https://github.com/Deep-Dive-Coding-Fullstack-Licensing/example-capstone