FINAL PROJECT DESCRIPTION

For the final project you will use your knowledge of front and back-end web development to produce an awesome web application that can be used by friends, family or any of the other billions of people who use the Internet. The type of web application you create is your choice.

The objective of this project is:

  • To apply knowledge by building a web application from the ground up.
  • To demonstrate mastery of topics covered during this course.
  • To showcase your abilities to potential employers, friends, family, and community members.

CORE REQUIREMENTS

  • Documentation. README.md contains purpose and description of app and code is commented.
  • Handles invalid data. Forms in your application should validate data and handle incorrect inputs. Validate sign up information, verify valid email addresses and secure passwords.
  • Partials. Use partials to DRY (Don’t Repeat Yourself) up your views.
  • JavaScript & jQuery. Spice up the front-end of your app and have some event driven functionality. Pick framework(s) and/or library(s) to improve your js codebase cleanliness, DRYness, and maintanability. If you want to write a JSON API with Rails, and build your frontend as a pure JS app, then go for it.
  • AJAX. Use AJAX to communicate with the server without reloading the page. Some things to consider might be validating or saving form input.
  • Rails or Node. You can build your app in Rails or Node (in some cases both)
  • CSS & Styling
  • Heroku. Deploy your code to Heroku.

OPTIONAL ADD-ONS

  • Socket.IO Incorporate Socket.IO when building your app.
  • Underscore.js Impress us with your newfound Underscore.js knowledge.
  • Frontend framework to organize your js code. See TodoMVC for ideas.
    • NOTE: If you decide to use one of these, you must be able to defend your decision, by answering an instructor's questions on Monday about why you think you can a) handle it b) use it effectively, in terms of why you need the framework.
  • Authentication and Authorization. Your app will maintain user accounts and profiles. Login credentials must be validated before users can gain access to your application.
  • External APIs. Use external APIs to add functionality to your app, if it makes sense to do so.
  • Responsive Design Use responsive design techniques to make your site beautiful on various screen sizes. Consider using Twitter Bootstrap or another css framework to help with this.

PLANNING & DELIVERABLES

Planning:

  • Group members (Optional) If you want to work in a group, we think you’ll learn the most if you work in groups of 2, but you may have groups of up to 3. If you plan on having a group of 3, please first consult with instructors.
  • Scope. What features will it have? What do you reasonably think you can implement in the time period?

Project plan deliverables:

  • Wireframes. Begin sketching out on paper what a few of your core pages will look like and how they will work.
  • MVP. Provide a summary of the project and a list of MVP features.
  • Milestones. Outline some milestones for yourself based on how you prefer to work.

Final project deliverables:

  • Link to Heroku hosted project
  • Link to source code on GitHub

TIMELINE

  • Thursday, April 2nd at 10:00am - Final project deliverables due

WHAT WE ARE LOOKING FOR

Make sure that your code is:

  • Dynamic
  • Flexible/extensible
  • Well-commented
  • Well-formatted
  • Follows naming conventions
  • Tested
  • Clean

We’ll also be looking at:

  • Quality of communication around decision-making. That is, can you defend why you chose a certain technology or why you implemented your solution in a certain way?
  • Your ability to pick up new technologies.
  • Your ability to take full advantage of a language’s features.