4.P: Capstone
Introduction
Build an Application that solves a problem you have using any technologies. Rocket encourages you to use at least 1 technology you have not used before. Rocket expects you to justify your technology choices and articulate tradeoffs between available options. This project can be done individually or in a group. In this project we expect that you will develop an Frontend Application that interfaces with your own Backend Server that is connected to a Database. This Application must have at least the same level of complexity as your previous P2 and P3. If in doubt, ask your section leader.
Requirements
App Stack
This project must be a Frontend Application that communicates with an Backend Server that is able to interface with a Database to persist information. Both the Frontend and Backend should be protected from malicious behaviour by leveraging Auth0 or JWT. Additionally to this we expect that you implement a new technology.
User Interface
Functionality
Frontend
Complexity:
Frontend Application has at least 2 levels of components eg: App component and 1 or more child components
Frontend Application must contain multiple pages this can be implemented with React Router
The Frontend Application is required to protect components from users who are not authenticated using an authentication tool of your choice
Backend
Backend Application must be able to process GET, POST, PUT and DELETE requests
Backend Application is required to persist data in a database of your choice
Backend Application must use an ORM to facilitate interface between Express API Server and the database of your choice
The Database must contain at least 1 One-Many relationship (Only for SQL databases)
The Database must contain at least 1 Many-Many relationship (Only for SQL databases)
The Database must utilise Sequelize Migrations to generate tables (Only for SQL databases)
The Database must leverage Sequelize Seeder files populate data (Only for SQL databases)
The Backend Application should protect any sensitive routes leveraging an authenication tool of your choice
Code Quality
Application is organised as well as structured, it follows practices of component separation and has a good folder structure
The code is easy to comprehend and read
The application contains meaningful variable and function names
Application contains components that can be reused
The application preforms well without unwarranted rendering
The application's code follows consistent coding conventions, regarding indentations and formatting
The application follows the correct naming, casing and commenting best practices
Project Management
Frontend Application has been deployed using a provider of your choice (Github Pages, Firebase Hosting, Netlify)
Backend Application deployed using fly.io
Git repository contains commits for each feature with descriptive commit messages
Application contains a README with the applications description, user stories, ERD (Entity Relationship Diagram) and wireframes
The README contains instructions on how to run the application
Every group member must contribute at least 1 feature into the application (Only if in a group)
Participants of the project should have updated collaboration documents and trackers (Only if in a group)
Ideas
Solve a problem you have with 1 or more new technologies. Past students have built web apps, mobile apps, data visualisations, worked with blockchain, graphics, machine learning. Follow your interests, and consider how you might present this project to target employers for a job. If you are keen on working in a specific industry, consider building a project related to that industry.
If you wish to build an app that involves real-time location tracking in a virtual world, consider using Socket.IO over Firebase for lower latency. If you wish to build an app that involves live-streaming video or audio, consider using WebRTC, the technology used by Zoom, Google, and Facebook for their video-conferencing apps.
Timeline
You will have almost twice the amount of time for your capstone than other projects. Consider using the first days to experiment with new technologies before deciding on an idea and tech stack.
Setup
Feel free to use setups from past projects or a completely new setup depending on the technologies you are using.
Deployment
Please deploy using any deployment tool that makes most sense for your app. Feel free to try new tools that we have not used before in Bootcamp.
Submission
Add your Capstone repo link to the Rocket Bootcamp Projects spreadsheet in your batch-specific sheet shared by your SL
Last updated