DEV Community

loading...
Cover image for Assignment Hog Sinatra Project

Assignment Hog Sinatra Project

dmarcr1997 profile image Damon Marc Rocha II Updated on ・2 min read

This project has shown me how far I have come in web development. I will not say it was easy but I did find myself wanting to go back for more each time I took a break. During its creation, my perspective on the internet has completely changed. I now feel that before I was barely even scratching the surface of the web. So here's an awesome quote that really puts all that into perspective.

Alt Text

“The only people who see the whole picture are the ones who step outside the frame.”
― Salman Rushdie

I designed an Assignment Tracker website, that allows students who are signed in to create, view, edit, and delete their assignments. Along with this function, I added a class feature that allows students to see others who have assignments in the same class and message them. While this was not my original plan I am happy as to how it turned out.

I decided to start this project from scratch; with help from past examples of the set up of Sinatra environments. The first few steps of my website were easy I created a diagram to structure my project and then wrote out a couple of pages of pseudocode to get myself started. Once this was finished then came the fun part of setting up my environment, controllers, models, and views. I made a lot of progress on the first day, almost finishing the minimum requirements needed. But I ruining my project setup making some fatal changes to the database and environment. I spent a few hours debugging and refactoring this but then I was back on track.
After the first day, I started having ideas of things I could add to my project beyond the scope of what I originally planned. So my website went from assignment tracker to an assignment and class tracker. Setting up my student classes database, controllers, and table came with some errors I should have expected; for example setting a column name in my table as 'class' and making duplicate class and student objects on class creation.
Once I had this function completely working. I had another idea; to add a messenger to my website. However, it was about 3 a.m. at this point so I decided to go to sleep and start the next morning. From the beginning, I ran into some errors with relating two students in a table. I fixed this by adding a recipient id column and searched for this when a student wanted to look at their messages. At this point I had a very rudimentary messenger; the user could send, delete, and view their messages. But I felt like it was missing something, a reply function. So I added a reply form that took in the recipient's username and used a hidden input for it to allow the user to just write their new message. I then worked on the website styles and error messages. These parts were fairly easy but tedious. With all that I was finished.
This project really helped me see everything I have learned, and just how far I have come in this class. I am feeling confident about continuing my journey in software development.

Discussion (0)

Forem Open with the Forem app