DEV Community

Cole Rau
Cole Rau

Posted on • Edited on

2 2

Cole Rau’s Flatiron School Sinatra Project

Project Description

I’ve created a Ruby CRUD MVC web app that allows users to signup, login, logout, write a review for a book, edit their review, delete their review, and see all the reviews they’ve made. A user’s reviews are persisted in a database unless a user decides to delete their review. One user cannot access another user’s reviews, nor login to another user's account. A user’s password is encrypted when it is stored in the database.

To login, signup, create a review, or edit a review, a user fills out a form. To logout, see a review, or delete a review, a user clicks a button.

My project’s schema (the database tables and their relationships to each other) is presented below:

schema

I used the following technologies in my project:

  • Sinatra
  • ActiveRecord
  • SQLite

Project Process

My database caused several hiccups in my work-flow. When I wanted to re-seed my database, I ran

rake db:reset

in my terminal, but I received the following error:

ActiveRecord::AdapterNotSpecified: 'development' database is not configured. Available: []

My first attempt at a remedy was to delete my db folder. But when it wouldn’t return from my computer's trash folder, I decided to make a new Github repository. My ultimate solution to reseed my database was to delete just the .sqlite file in the db folder, then run

rake db:migrate

then

rake db:seed


In another subject, organizing my project’s code was a bit of a challenge. I had some trouble understanding which controllers to use for what reason. In the end, I had a sessions_controller, a users_controller, a books_controller, and a reviews_controller. In hindsight, I could have deleted the books_controller and moved the code into the reviews_controller. This would have made my project easier to understand for other developers.

The coding process wasn’t all a struggle - I did enjoy creating the forms and using some HTML to make my index page (http://localhost:9393/) look nice. I also added an image from Micah Ulrich’s fantastic online art collection. However, as a whole, I prioritized getting my code to function properly rather than focusing on how my website would look to the end-user.

My project’s code can be found here: https://github.com/colerau/sinatra_project_v3

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs