Skip to content

Latest commit

 

History

History
149 lines (98 loc) · 7.6 KB

README.md

File metadata and controls

149 lines (98 loc) · 7.6 KB

Project 3 - Final Project

Read this entire document before writing a line of code.

Contents


Overview

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 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.


Big Goals

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.

Technical Requirements

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.

Further Exploration

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.

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 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.

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 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.

Deadlines

When is the project due?

Submission

How do I turn in the project?
  • As you make code changes, frequently commit and push to GitHub.
  • To turn in your project, please add the links to your project on GitHub and Heroku to this spreadsheet.

Presentation Guidelines

What should I cover during my presentation?

Project 3 presentations will start at 10:00am on Thursday, February 25th. Each presentation should be 8 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!

Feedback

How will I get feedback from instructors?

See the feedback doc for details.