Read this entire document before writing a line of code.
- Overview: What is this project?
- Big Goals: What should I focus on?
- Technical Requirements: What technologies will I be using?
- Further Exploration: What if I want to do more?
- Planning & Deliverables: What will I be turning in?
- Deadlines: When is the project due?
- Submission: How do I turn in the project?
- Presentation Guidelines: What should I cover during my presentation?
- Project Feedback: How will I get feedback from instructors?
You’ve come a long way, and it's time to show it. This will be your most advanced project to date, and it'll hopefully be the shining beacon of bragging rights for your portfolio as you make your way out into the world of web development.
You get to call the shots and invent your own idea, choosing a framework and tools that are appropriate for what you want to build. Use everything you've learned so far, and tackle something that'll push you a little outside of your comfort zone.
Make sure it's something you can accomplish in the limited time we have, and make sure it's something that will be visually impressive.
You may work on this project individually or in pairs. See the project planning deliverables section below for extra planning requirements for pairs.
- Discover or invent an idea, preferably one with some group of users that would jump at the chance to really use your product.
- Design a product you want to build, and choose appropriate technologies to build it.
- Pitch your idea to your classmates and instructors, and incorporate their feedback.
- Make productive use of your time, and balance responsibilities to make a complete, impressive-looking project.
- Focus on writing solid, real-world code that is well-documented and DRY.
Your app must meet the following technical requirements:
- Use a database, whether it's one we've covered in class or one you want to learn.
- Build a full-stack application by making your own back-end and your own front-end.
- Create a complete product, which most likely means multiple related resources and CRUD functionality for each.
- Create a focused product. Know which features are essential to build for your MVP and which to set aside for later.
- Craft thoughtful user stories that are significant enough to help you ensure a pleasing and logical user experience.
- Handle errors gracefully, and provide useful feedback to users when errors or validation failures do occur.
- Make a product that's impressive-looking; up your design and style game to kick your portfolio up a notch.
- Deploy your application online so it's publicly accessible.
- Incorporate an external API to add data and functionality to your application.
- Use a data visualization library to help users understand your core data.
- Implement third-party log in to allow users to access data from other services.
- Build something you can really launch, and recruit an actual user-base.
- Test critical components of your code to ensure that it works.
- Research web accessibility (e.g., for blind users), and apply accessibility principles to your app.
You should review the following with your instructional team BEFORE you start to code.
- Scope: What are you planning to build? What do you reasonably think you can implement in the time period?
- User Stories: Who is your user? What features will your app have? Set up your project and user stories in Trello.
- Wireframes: Sketch out what your core pages will look like and how they will work. Consider making a paper prototype to demonstrate and/or test key user interactions.
- Data Models: Draw out the models and any associations for your project in an entity relationship diagram (ERD).
- Milestones: Divide your work into parts - the most essential features for your MVP, features that are important but not essential, and features that can be saved for a later iteration. Create 3-5 major milestones with dates outlining when you expect essential features will be done.
- Feasibility Study: If you're using an external API or scraping a website, make sure you can get that data. If you're using a new language, framework, or tool, go through its getting started tutorial. We will ask to see your results.
In addition to the above requirements, students working as pairs must:
- Detail each person's responsibilities and features they will own.
- Describe your plan for workflow and communication.
- Demonstrate that each person will be challenged to contribute excellent work.
- A working full-stack application, hosted somewhere on the internet.
- A git repository hosted on Github, with frequent commits dating back to the beginning of the project.
- A link to your hosted working app in the URL section of your Github repo.
- A
README.md
file with:- A link to your hosted working app.
- A paragraph-long description (elevator pitch) of your project.
- A list of the technologies used.
- A list of installation steps for the app itself and any dependencies - how would another developer run your site locally?
- Link to your user stories - who are your users, what do they want, and why?
- Link to your wireframes – sketches of major views / interfaces in your application.
- Link to your entity relationship diagrams – plan out your data relationships before coding.
- Descriptions of any unsolved problems or future features.
-
Monday-Tuesday, July 24-25 - Project planning deliverables due! Before beginning work on your project, your idea, project scope, and other planning deliverables must be approved by an instructor.
-
Monday-Tuesday, July 31-August 1 - Completed project deliverables due and presentations! Find the schedule in our project submission doc.
- As you make code changes, frequently commit and push to GitHub.
- You will be required to submit the GitHub URL and the URL to the live site - watch slack for details.
Project 3 presentations will start at 4:30pm on each day. Each presentation should be 10 minutes or less and cover the following:
- What was your motivation to build this project?
- Demo of your project's core functionality.
- What is one feature you're particularly proud of? (show code)
- Shout-outs for your fellow classmates!
See the feedback doc for details.