Projects

Project One: Alpha App

Due Sunday, March 31, by 11:59pm CT

Project Description

For the first project, you will independently conceive, sketch, and build the alpha version of a Rails app. The app can be anything you believe to be interesting and useful. It needs only the most basic functionality and design to be viable; its purpose is largely to help you learn to work with Rails and make mistakes. Think of it as a proof of concept, both for the app itself and for your own initial skills in Rails development.

Project Goals

  • Learn to conceive and sketch the most essential features of a web application
  • Learn to set up and build a web application with Ruby on Rails
  • Learn to search, navigate, and consult the Rails documentation and Rails Guides to solve your own problems—but also jump on Basecamp and ask for help when you need it
  • Develop familiarity with model-view-controller architecture

Deliverables & Milestones

  1. A functional Rails app that can be racked up and run locally
  2. A GitHub repository containing only the work from this project
  3. Three in-progress posts of your app in development: one post focused on the models (it should include seed data in seeds.rb as well); one focused on the routes and controllers; and one focused on the views. See course calendar for deadlines.
  4. Responses to at least three other students’ in-progress posts for each of the three focuses (model, routes/controllers, views). See course calendar for deadlines.
  5. An email to the instructor containing the project’s two final deliverables (by Sunday, March 31, 11:59pm CT):
    1. A 4-5 sentence self-critique memo of your project and your progress in class to this point
    2. The https:// link to your project’s GitHub repository

Grading Note

This project is worth 25 points. 15 of those points are earned from the three in-progress posts and responses to the work of three other students (2 points for your work; 1 point for each of the three responses to other students). Those points are all or nothing: you either submit your in-progress work and respond to three other students on time—or you don’t. The remaining 10 points will be determined based on the final version you submit.

Requirements

  • Use Ruby 2.6.x and Rails 5.2.x
  • Strive for at least two database tables, associated in some way
  • Develop a suite of functional and unit tests for your application
  • Frequent, detailed commits to your Git repository (include commands you may have run, e.g., rails generate, in commit messages, when applicable) and frequent pushes to your GitHub remote repository; Git repository must contain only the files and commits from this project
  • Do development work on a dev branch in Git; merge only the best functional, test-passing work over to the master branch.
  • Create templates using HAML that leverage partials and a sensible source order
  • Create a mobile-first, responsive web design utilizing em- and percentage-based units, min-width media queries, and SCSS

Project Two: Beta App

Due Thursday, April 25, 11:59pm CT

Project Description

For the beta app, you will work in teams of two or three. Your group can either begin again with the app created by one of your group’s members for Project One, or you can pursue an idea for an entirely different app. Requirements and deliverables are similar to those of Project One; however, you will more fully flesh out the design of your app, both functionally and visually. It must include a way to authenticate users, preferably using an OAuth-based schema.

Project Goals

  • Learn to develop and refine the basic features for a web application
  • Learn to set up and build a web application in collaboration with others, using Ruby on Rails and a shared GitHub repository
  • Learn to search, navigate, and consult the Rails documentation and Rails Guides to solve your own problems
  • Learn to authenticate users using OAuth or another mechanism that does not involve storing user passwords in your app

Deliverables & Milestones

  1. A functional Rails app that can be racked up and run locally
  2. A Basecamp post linking to your team’s GitHub repository along with specific requests for help and feedback (due no later than Sunday, April 14, 11:59pm CT)
  3. An email to the instructor containing the projects two final deliverables by the due date:
    1. A 5-7 sentence self-critique memo of your project and your progress in class to this point
    2. A 4-5 sentence critique for each of your group members
    3. The primary team GitHub repository for the app (link should be emailed to the instructor)
    4. Your personal GitHub repository for the app (link should be emailed to the instructor)

Requirements

  • Use Ruby 2.6.x and Rails 5.2.x
  • Strive for at least two database tables, associated in some way
  • Develop a suite of functional and unit tests for your application
  • Frequent, detailed commits to your Git repository (include commands you may have run, e.g., rails generate, in commit messages, when applicable) and frequent pushes to your GitHub remote repository; Git repository must contain only the files and commits from this project
  • Do development work on a dev branch in Git; merge only the best, functional, test-passing work over to the master branch.
  • Use pull requests to incorporate and stay on top of the changes you make to your Rails project collaboratively
  • Create templates using HAML that leverage partials and a sensible source order
  • Create a mobile-first, responsive web design utilizing em- and percentage-based units, min-width media queries, and SCSS
  • Build a mechanism for logging in and tracking user accounts, preferably OAuth, and work with session variables in Rails to maintain state for the duration of a user session with your app

Project Three: Revised, Publicly Deployed App

Due Thursday, May 9, 11:59pm CT

Project Description

For this project, you and your group will revise, refactor, and otherwise improve the app as delivered in beta form for Project Two. Additionally, you and your group will set up and automate deployment of your app to a public-facing server. You can use a system like Heroku, or a custom solution employing Capistrano.

Deliverables & Milestones

  1. Email to instructor with a brief memo about your app and your progress in this class; also mention what your team improved
  2. Link to your deployed app on Heroku

Project Four: Independent App (COM 531 Students Only)

Due Thursday, May 9, 11:59pm CT

Project Description

You will create an app independently that addresses some kind of personal or professional interest, and that helps to expand and deepen your knowledge of Rails.