Your final project should be a full showcase of the talents you've cultivated during your time here, your creativity, you ability to problem solve, work in a team, and meet a harsh deadline.
- Use any, all, most, or none of what you learned ...
- Make sure it works great
- Make sure it looks amazing
- Make sure it's covered in tests
Tools At Your Disposal
- Express Web Server with EJS
- Express Custom API Server
- Authentication, Authorization, RBAC
- Remote APIs
- SQL
- MongoDB
- Socket.io
- React
- SASS
- React Native (Mobile)
- ... or teach yourself something totally new this week!
-
To manage Tasks ...
- Agile / Kanban Workflow
- Project Management System
-
To Manage and Deploy Code
- SCM: Use the strict Git Workflow
- Deployment:
- Local dev/feature branches
- One Branch Per Feature
- Staging (Pre-Production) Branch
- Master (Production) Branch
- Local dev/feature branches
- Developers work locally in feature branches
- Check-in and merge PRs against
stage
- Deploy
stage
to a pre-production server (AWS, Azure, etc) - Once verified, PR stage against master and deploy to production server
- Protect master from direct check-ins
- Only Leads (TAs) can merge from Stage to Master
- Testing: Hook in GitHub Actions for live code testing
- Automation: Automate your deployment from Stage and Master to your service of choice.
- Create your GitHub organization
- Back-End Repo
- Front-End Repo
- Other Repo's for supporting services
- Deploy a simple "Hello World" server through your full pipeline
- Stage and Production of all servers
- Tests hooked up and passing
- Get your project board setup with your initial stories
- At this stage, its's probably just stories to write more stories...
- Get your Wiki setup for documentation
- Wireframes Complete
- User workflows finalized
- Initial design planned
- Code
- First MVP should be completed by EOD
- Your core functionality should be working end to end.
- Databases Hooked up and saving
- User workflow works (navigation, actions)
- Adding Non-Breaking Features
- Layering on the Styles
- Final "MVP" should be complete
- Whatever you have by EOD should be presentation ready
- Anything you add from this point on is purely additive.
- Final Polish
- Presentation Practice
- Eat.
- Drink.
- Present.
- Graduate.
- Win.
- Prepare a Powerpoint Style "deck" to present your project
- Slide 1: Team Name and Logo
- Slide 2: Summary of the project
- One slide for each team member.
- Picture, 2-3 bullet points about you
- Introduce yourself, touch on your role in the team, and present your personal pitch.
- Slide: Describe your problem domain in more bullet points
- Slide: Sell your solution
- Move to a stellar demo of the working application
- Show Your Tests
- Slide: Detail your workflow and process
- Slide: Highlight your wins
- Slide: Highlight areas for growth
- Questions and Answers
Why a deck? It's a helpful tool to keep you on time and on focus. Also, you will spend a lot of time in dev jobs speaking in front of a deck, so this is good practice for that. Know what's on screen behind you and prepare to speak in what appears to be an 'ad-hoc' fashion in front of it.
- Solve a real business or community problem
- Deliver something desirable (make it rock!)
- Don't over-complicate. Sometimes, the simplest solution can be the most scalable and stable. Favor stability and tightness over wizardry