Back End (Ruby on Rails) Final Project

Developing Your Own Rails Application

For the final project, you will each design and develop your own Rails application. You will have two weeks to complete the project. As that is a short time for a fully functional application, the applications will have to be relatively simple, with only a few features implemented.

For students who would like to become interns with Code the Dream, the final project is very important, because it is the best indication of how well you would succeed as an intern.

Goal of the Application

The goal of the project is to showcase what you have learned during class. You will have the opportunity to demonstrate your knowledge and creativity. You are required to create a Rails application from scratch. A proposal for what your application will do is required to be submitted before you start working on the project.

Code the Dream primarily develops applications that help organizations deliver services to the community, or contribute toward social good in other ways. You can see descriptions of some of the applications now in production here: https://www.codethedream.org/portfolio/.

For your final project, ideas for applications that could contribute in this way are strongly encouraged. The COVID-19 virus creates some new needs that may inspire you.

However, don’t let this limit you. Other types of applications will also be considered.

Please don’t think you have to match any of the applications in the Code The Dream portfolio. Those applications are many person months of hard work. You just have to demonstrate some key skills.

Examples

Check out this playlist of final project presentation videos by previous CTD students to give you some ideas.

Before You Start

Please discuss your proposal with us. You will fill out a form to describe your proposal, saying what you would like to do. We will evaluate the proposal to make sure:

  • That it is doable in the allotted time. If the project seems too complicated, we may suggest that it be limited to just a few features.
  • That it demonstrates the skills you have learned in the class series so far. It should not be so simple that it doesn’t show key skills.
  • That it gives you an opportunity to demonstrate creativity, which is important for a developer.

You may find that you want to use some concepts, technologies, or gems we didn’t cover, which is worth some extra points so long as it doesn’t get too hard.

Requirements for the Project (Rubric)

  1. Create a full Rails application from scratch using ActiveRecord and a database. It must contain the following elements:

Models & Controllers

  1. At least two ActiveRecord models
  2. Model attributes should use different data types (integer, string, boolean, etc)
  3. At least one association is required, one-to-many or many-to-many (Please don’t make this too simple. More models, nested associations, or many to many associations are encouraged.)
  4. Validation of your attributes to prevent the creation of invalid records
  5. Implement all the CRUD (create, read, update, delete) operations for your models in your controllers
  6. Bonus: implement some non-CRUD operations (like sorting, paging, etc.)

Views

  1. Implement the views for the CRUD operations for each model:
    • Index – view to list all the records for that model
    • New – form to create a new record
    • Edit – form to update an existing record
    • Show – view to see a specific record
  2. Form controls should include several types of input fields, including but not limited to inputs, textareas, dropdowns, checkboxes, and radio buttons. There should be some links to connect the application together
  3. Links or buttons to help the users navigate the application.
  4. Style your application by adding CSS; the use of Bootstrap controls, such as Navbars, is highly recommended.
  5. The application should be attractive with inclusion of images, color, fonts and other CSS styling.

Testing

  1. Include at least some minimal testing using Rspec for some of the CRUD operations.

Bonus

14. Do something extra. This could be the implementation of a more complicated data model, or the use of gems such as Devise for authentication or Active Storage for file storage, or implementing a REST API with a front end — your choice, whatever fits for application.

Submission

You should submit a link to your Github repository which contains your application. It is highly encouraged that you use git branches to implement each feature. We will share a link to a form before the due-date which you can use to submit your link.

Presentation

Each student will present their application in a Zoom meeting. You will only have 5 minutes for each presentation, but we will have reviewed your application with you ahead of time.

This site needs some love. Come contribute; we're open to contributors! Come lend a hand!