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?
What is this project?
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 may continue/ extend your Project 2 or 3. If doing this, you must lay out in your Project Planning materials the weeks worth of work you plan on doing.
You also may build a new idea from scratch, choosing a framework and tools that are appropriate for what you want to build. This may be done in pairs, and that is highly encouraged.
The purpose of a Project continuation/ Paired project is to give you opportunity to both get out of your comfort zone and expand a bit into uncharted territory for you and still leave with a functioning, beautiful portfolio project.
See the project planning deliverables section below for extra planning requirements for pairs.
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.
What should I focus on?
- 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.
What technologies will I be using?
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.
If continuing project 2 or 3, you must add at least one additional resource to CRUD.
What if I want to do more?
- 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. Alex can tell you all about that.
Planning & Deliverables
What will I be turning in?
Project Planning Deliverables
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 using Trello or another system/tool that works for you.
- 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.
Completed Project Deliverables
- 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 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.
When is the project due?
BY FRIDAY AFTERNOON, Feb 23 - Project planning deliverables due! Before beginning work on your project, your idea, project scope, and other planning deliverables must be approved by an instructor.
BY FRIDAY AFTERNOON, March 2 - Completed project deliverables due and presentations!
How do I turn in the project?
- 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.
At the end of this project, you'll present a formal presentation FRIDAY AFTERNOON, March 2.
What should I cover during my presentation?
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!
What should I prepare for the showcase?
You should have your app ready to demo on your computer, and a quick (2-3 minute) explanation of what your project is and what's interesting about it.