Skip to content

Latest commit

 

History

History
130 lines (110 loc) · 5.56 KB

project_3_specs.md

File metadata and controls

130 lines (110 loc) · 5.56 KB

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:

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

CORE REQUIREMENTS

  • Test It. You must write request and model specs.
  • Authentication and Authentication Your app will maintain user accounts and profiles. Login credentials must be validated before users can gain access to your application.
  • 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), library(s) to improve your js codebase cleanliness, DRYness, and maintanability. For example, use Backbone.js, Angular.js, and/or other libraries, as necessary. If you want to write a JSON API with Rails, and build your frontend as a pure JS app, then go for it.
  • CSS & Styling
  • AJAX. Use AJAX to communicate with the server without reloading the page. Some things to consider might be validating or saving form input.
  • Advanced Rails. Apply some of the advanced Rails topics learned during the last few weeks of the course such as searching or file upload.
  • Ruby Gems. Use gems to add functionality to your app.
  • External APIs. Use external APIs to add functionality to your app.
  • Heroku. Deploy your code to Heroku.
  • Documentation README.md contains purpose and description of app and code is commented

OPTIONAL ADD-ONS

  • Backbone.js & Angular.js Incorporate Backbone or Angular when building your app.
  • Responsive. Use responsive design techniques to make your site beautiful on various screen sizes. Consider using Twitter Bootstrap or Foundation to help with this.

PLANNING & DELIVERABLES

Ideation deliverables:

  • 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 an executive summary of 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

  • Tuesday, June 17th- Wednesday, June 18th - Ideation deliverables due & Project plan deliverables due. If you can have this done before then, that would be to your advantage. If this is completed early, please come to an instructor to get a check-off on your project.
  • Thursday, June 26th at 9:30am - 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.

Meets Expectations Rubric

  • Test It.
    • Basics
      • No empty tests
      • All tests passing
      • Each major component should have some tests
      • Factories used for models
    • Bonus
      • Some Feature Testing
      • JavaScript Testing
  • Authentication and Authorization
    • Basics
      • Some kind of authentication present
      • Access implemented control to specific models or actions
    • Bonus
      • OAuth used
  • Handles invalid data.
    • Basics
      • Model validations present, including presence and format checks
      • Error messages displayed to user
    • Bonus
      • Flash messages
      • Client side validation
  • Partials.
    • Basics
      • No code replication in views
  • JavaScript & jQuery
    • Basics
      • Some use of JavaScript on the client side
    • Bonus
      • JavaScript Framework (e.g. Angular, jQuery, Backbone, Underscore or Ember) used
  • CSS & Styling
    • Basics
      • Customized Style Sheet or Customization of Framework like Bootstrap
    • Bonus
      • SASS or LESS or Compass
  • AJAX
    • Basics
      • Some use of AJAX API on the client side
    • Bonus
      • Ajax form validation with error display
      • Ajax login implemented
  • Advanced Rails.
    • Bonus (at least one of)
      • Search, Pagination, Image Upload, Nokogiri
  • External APIs.
    • Basics
      • Use one external API
    • Bonus
      • Use more than one :)
  • Heroku.
    • Basics
      • App deployed to Heroku
  • Documentation
    • Basics
      • README.md contains
        • Description of app
        • Link to live application included in README.md
        • Installation instructions (including notes about required_api keys)
        • List of technologies used
      • Complex methods are commented