Giter Club home page Giter Club logo

project-02's Introduction

Project 2 - Rails Group Project

Read this entire document before writing a line of code.

Contents


Overview

What is this project?

For the second project, you will use your knowledge of front-end and back-end web development to produce a polished web application that can be used by friends, family, or the wider online community -- and that will benefit your portfolio.

The objective of this project is to:

  • Work with a group in a shared GitHub repository.
  • Plan and implement a larger scale project as part of a development team.
  • Integrate topics learned and experience gained in the course so far.
  • Showcase your abilities to potential employers, friends, family, and community members.

You will be working in groups of 4 for this project.


Planning & Deliverables

What will we be turning in?

Project Planning Deliverables

You must 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 or in some other organized format.
  • 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: Outline the milestones/sprints for your group.
  • Delegating Tasks: What will each group member work on? Leverage everyone's strengths, and spend the majority of coding time pair programming.

Completed Project Deliverables

  • Link to Heroku hosted project, with all core technical requirements and three flexible technical requirements complete.
  • Link to source code on GitHub.
  • A README.md file with the following:
    • Description: Short paragraph (2-3 sentences) "elevator pitch" describing what your project does
    • Wireframes and user stories
    • Link to Heroku hosted project
    • Technologies (languages, external libraries, APIs)
    • Wish List / Future Development
    • Contributors (with links to their GitHub profiles)

Technical Requirements

What technologies will we be using?

Core Technical Requirements

Your app should have all of the following:

  • Rails: Use Rails as the core framework for Ruby.
  • PostgreSQL: Use PostgreSQL for your database in development and production.
  • Data Models: Include at least two data models with associations.
  • Data Validation: Your application should validate incoming data before entering it into the database.
  • Error Handling: Forms in your application should also validate data, handle incorrect inputs, and provide user feedback on the client side.
  • Testing: Write specs for 25% of your controller functionality, as well as for any model methods.
  • Views: Use partials to follow DRY (Don’t Repeat Yourself) development in your views.
  • User Experience: Ensure a pleasing and logical user experience. Use a framework like Bootstrap to enhance and ease your CSS styling.
  • Responsive Design: Make sure your app looks great on a phone or tablet.
  • Heroku: Deploy your app to Heroku. Ensure no app secrets are exposed. Do not commit secret keys to GitHub!

Further Exploration

What if we want to do more?

If you want to push yourself and learn something new, optionally consider doing any of the following ideas. Please talk to an instructor beforehand.

  • External APIs: Use HTTParty or a third-party API back-end gem to integrate third-party data into your app.
  • User-Friendly URLs: Make pretty URLs that don't expose database IDs.
  • Charting: Visualize your data! Possibilities include D3, Morris.js, Highcharts, Chart.js, and Google Charts.
  • Job Scheduling: Set up a job-scheduler like Sidekiq, Delayed Job, or Resque to queue actions that don't need to run immediately.
  • Emails: Use ActionMailer to send emails to your users.
  • Text Messaging: Use Twilio to send texts to your users (note: free for testing/a few users, but not free forever).
  • Payment: Use Stripe to allow your users to purchase from or donate to your site.
  • Material Design: Research the material design paradigm and apply it to ground your app's UI in the physical realm.
  • CSS Animations: Use jQuery or animate.css to include animations on your site.
  • Accessibility: Research web accessibility (e.g. for blind users), and apply accessibility principles to your app.
  • Sessions: Use sessions to store data for site visitors (who aren't necessarily logged in).
  • Search: Build a form that allows users to search your data, based on attributes. Consider looking into Elasticsearch to speed up queries.
  • Whatever else you can think of!

Deadlines

When is it due?

Submission

How do we turn in the project?
  • As you make code changes, frequently commit and push to GitHub. Add links to the project submission doc.

Project Groups

Who are my group members and assigned instructor?

https://docs.google.com/spreadsheets/d/19baYsQr8BcsPz5E28qp1WYjeLUabz8B26EGnZEHQpmw/edit#gid=509795604


Presentation Guidelines

What should we cover during our presentation?

Each group will present their project on Tuesday July 18th starting at 1:30pm. Please follow these guidelines:

  • Your presentation should include the motivation for building this project and a demo of the core functionality.
  • Maximum 20 minutes.
  • Minimum 5 slides. Slides should include:
    • Wireframes
    • User stories
    • ERDs
    • Walk through the development of one feature from ideation to execution. At minimum, this should include wireframes, code samples, and the final result.
  • ALL group members must speak during the presentation. Each group member should answer the following:
    • What parts of the project did you work on?
    • What was the most challenging aspect? Was there anything that was surprisingly easy to implement?
    • What did you learn?

Project Feedback

How will we get feedback from instructors?

See the feedback doc for details.

project-02's People

Contributors

justincastilla avatar nathanallen avatar mnfmnfm avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.