So You're About to Enter Phase 5
It is time. Your final project for this course. This is the capstone project that you’ll be showing off to demonstrate all the things that you’ve learned so far. This is awesome.
Before we dive into what your project is going to be about, we need to establish some ground rules.
Final Project
This is the time to dive into React libraries you’ve gotten interested in, or play with APIs that would have taken too long to figure out during a shorter project week. This is the time to make the app that you’ve always wanted but never had, write up a bunch of custom CSS, and really put your skills on display.
Because we’re asking you to show off a specific set of skills, we have some requirements. It should be obvious that one of the requirements is that you need to use the things that you learned during this course. This isn’t the time to build a game with Unity or explore the MEAN stack or try and whip up a React Native app. You’ve done a ton of learning already - it’s time to apply all of that knowledge.
First thing first - the burning question: Are we required to use Redux and Auth in our final project? The answer is…. it depends.
Project Requirements
The listed requirements below are guidelines that should help you to determine what the complexity of your project should be. They are not hard and fast rules, and final project approval is up to your leads and SECs, who will be acting as project managers.
Backend
Your project must use a non-trivial Rails backend. Consult the following list for examples of things to include. You do not need to include all of these things, and the final decision of what must be included will be up to your project managers.
- Auth
- Tests
- Multiple has_many_through relationships
- Seeds from a complex data set
- Custom routes
- Custom controller/model methods
- Basic database query optimizations
- Background jobs for slow actions
- Sockets or email integration
- One significant refactor
- Validation
Frontend
Your product must use a React based frontend. Consult the following list for examples of things to include. You do not need to include all of these things, and the final decision of what must be included will be up to your project manager (your instructor).
- Auth
- Tests
- Interacting with a complex API
- Redux
- Custom CSS
- One significant refactor
Schedule
For much of Phase 5, your time is your own. This is, however, a great opportunity for you to practice good time management. There are some specific milestones during this process - your project manager will determine the exact timeline for each of the following:
Initial Project Pitches
This is when you get to pitch whatever pie in the sky things you want. We’re not yet worried about what your MVP is or whether your idea is practical - just come up with ideas. You won’t be starting on your project immediately, so think of this as your research and development phase. Learn Auth, learn Redux, learn how to use complex APIs and libraries. Your instructor will give you an idea of what is and isn’t practical, and some guidance on the technologies you’re looking at.
Project Proposals
You will have your project ready to pitch to a panel including a lead and your instructor. You’ll have the models drawn out, a sketched out version of what your frontend will look like, and evidence that you’re able to use the APIs and libraries that you’re going to implement. You’ll also have a proposal for what your MVP will look like. You’re expected to have the MVP complete a week from this day. Together you and your instructors will determine the best project to move forward with.
Retro
You’ll be taking part in a retro once a week. This will be the time to talk about what went right, what went wrong, what roadblocks you’re still up against and your plan of attack for getting over them.
You’ll also have two mandatory check-ins with your instructor leading up to your MVP presentation. After that, office hours will be available to sign-up for, but will not be mandatory.
MVP Presentations
You will present your completed MVP to your project manager and a lead instructor. You should have all the functionality that you promised during your project proposal, as well as a plan of attack for the next week.
Projects Complete
A few days before your projec is due, you should have your project done. Time after this should be spent styling and fixing minor bugs only - you should be done with all the core functionality.
Science Fair
This is the day that you’ll be showing off your projects to your peers!
Helpful Tools
Organization
Kanban/Scrum Board
Because this will be the most complex project you’ve made during this course, you’ll need something to keep you organized. We recommend Trello or a Github Project Board. Use this to track what you’re doing and what you need to work on. It’s also a great idea to keep track of bugs that you’re not going to immediately fix.
Pomodoro Timer
If you don’t take breaks, you’ll end up hurting your eyes, getting an RSI or burning yourself out. The Pomodoro Timer method lets you put in solid chunks of work while also giving you regular breaks. We like Marinara Timer, since it’s nicely customizable.
Code Resources
Google Fonts - An amazing resource for fonts of all types
Grid Garden / Flexbox Froggy - Great for getting familiar with Grid and Flexbox
CSS Tricks - Learn yourself some sweet CSS
Semantic UI React / ReactStrap - CSS styling using React components
Postman - Test your backend without having to build out a frontend
Heroku - Simple, free hosting for your site
App Ideas - some ideas for non-standard apps
How to hide API keys in Javascript / Ruby | option 2