wdi-sf-fall / project-2-specs

Project 2 Specs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WDI SECOND PROJECT DESCRIPTION

For the second 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 others online. The type of web application you create is your choice: utilities, social networks, games, mashups, etc. Ensure however that the scope of your project is not too large so that you can reasonably complete a MVP in this time.

The objective of this project is to:

  • Get experience collaborating and working in a development team.
  • Gain experience integrating topics covered during this course thus far.
  • Showcase your abilities to potential employers, friends, family, and community members.

CORE REQUIREMENTS

  • Models. Your app should have at least 3 models with appropriate associations and validations.
  • Views. Use partials heavily to DRY (Don’t Repeat Yourself) up your views, and loading data via Ajax when appropriate.
  • RSPEC Feature specs should be written. Less than 10 specs total will reflect on the overall assessment. Write them early on or you will be struggling to get them done.
  • Postgres. Use Postgres.app for your database in development and production.
  • Handles invalid data. Forms in your application should validate data and handle incorrect inputs. Do this on both on the client-side with JavaScript and on the back-end with Rails.
  • JavaScript & jQuery. Spice up the front-end of your app with event driven functionality. Try out a new plugin or a library.
  • AJAX. Use AJAX to communicate with the server without reloading the page when appropriate.
  • External APIs. Use an external API to add functionality to your app.
  • User Login. Make sure you have authentication and authorization set up.
  • Home and About pages - Don't forget to work on a proper homepage, clearly explaining what your app is and will do. Create an about page with photos to show off
  • Heroku. Deploy your code to Heroku.
  • User Experience Ensure a pleasing and logical user experience. It is suggested to use a front-end CSS framework like Bootstrap to enhance and ease your CSS styling.

OTHER IDEAS

We may not have covered all of these in class, but if you want to push yourself and learn something new, optionally consider doing some of the following with your app.

  • Responsive Design Make sure your app looks decent on a phone or tablet.
  • File upload Take a look at Paperclip or Carrierwave using Amazon S3 for file hosting.
  • Web Scraping Check out Nokogiri, mechanize, and phantom.js.
  • Regex You might consider using Regular Expressions to process text. Validation is one common use case. Use Rubular for initial testing.
  • Charting Visualize your data with Morris.js or D3.
  • Job Scheduling Fnid a way to include Sidekiq (or Delayed Job or Resque) to your project.

PLANNING & DELIVERABLES

####Project Plan deliverables: You should review the following with your instructional team BEFORE you start to code.

  • Group members. You'll be working in groups of 3 or 4. Use your strengths to contribute to all parts of the project.
  • Scope. What are you planning to build? What do you reasonably think you can implement in the time period?
  • User stories. What features will your app have? Set up your project and user stories in Trello.
  • Wireframes. Sketch out what a few of your core pages will look like and how they will work. Paper works great. You can also check out wireframing software like Gliffy or Omnigraffle.
  • Object Models. Draw out the model associations for your project.
  • Milestones. Outline some milestones for yourself based on how you prefer to work.

####Completed Plan deliverables:

  • Link to Heroku hosted project
  • Link to source code on GitHub
    • Must include a README with the following:
      • Description: A paragraph elevator pitch of your project
      • Another Link to Heroku hosted project
      • Wireframes
        • This is a good opportunity to map out what will require AJAX
      • User Stories, Site Flow, or equivalent for MVP
      • An ERD
      • API's used
      • Scope
      • Wishlist
      • Contributors

TIMELINE

  • November 18 - Tuesday - spec assigned + project work begins
  • November 25 - Tuesday - Completed project deliverables due at 10am
  • December 1 - Monday - Medium blog post, sharing a key learning from this project, due at 1pm

About

Project 2 Specs