Sinatra Project.

Posted by swgoodman on July 20, 2018

The idea.

For my Sinatra project I decided to build a web application that allows users to keep track of products they’d like to purchase in the future. I called it “Wish List.” After signing up, members can keep track of items, links, and prices.

The Build.

Structurally, there are two main models: users and items. Users have a name, email, and password. Items have a name, link, and price. The program has three controllers: items, users and the application. There are two view folders, item and user, that control how users see, interact with, and use the application. All CRUD functions can be applied to items and users are able to login in and out securely thanks to bcrypt.

As I have progressed through this course I have been conistently checking in with the chart below. Given programming presents a “high” challenge level, up until now I have lived in the “Anxiety” portion of the chart. A bit stressed, alert, and frustrated at times. However, while working on this project I felt a shift into the “Arousal” state. I’m definitely on the border of “Anxiety” and “Arousal”, but while working on this project I really felt like I had things under control and I knew what needed to be done.

**Next steps. **

There are three things I would like to do on this project moving forward. One, make it look wayyy better. Currently, there is zero styling applied and it is purely function over form. I look forward to brainstorming stylistic ideas and having some fun with CSS. Secondly, I would like to add the functionality of a “Category” attribute of items that has its own model, allowing mutliple items to belong to one “Category.” This leads me to my third, and final, goal. Allow the items to be sorted by their attributes. Whether the items are grouped by “Category” or sorted by price, this will allows users to get more out of the app and organize their wish lists to taste.