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 TechnologiesOptional Technologies
HTML 5No use of deprecated tags
Includes fully accessible forms 
Full use of semantic tags
Uses the <audio> tag
Uses the <canvas> tag
Uses the <video> tag
CSSAll 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
JavaScriptUses 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
ExpressIncludes/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
MySQLUses all major relations (1-to-1, 1-to-n, and n-to-m)
Full Entity Relationship Diagram (ERD)
Uses stored procedures or MySQL functions
SecurityFull 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