That's it for project three!
This morning, I've finished building out a movie review app using Ruby on Rails. Here is the link to the git repo. I continue to use this similar movie review idea for all of my projects and it's interesting to see how the implementation of the concept changes as I learn new technologies.
What does it do?
To access the app, a user will need to log in/sign up for an account. There is the option to sign up through the app or use your Google account to sign in via Omniauth. Once logged in, a user can choose a movie, and submit a review that includes the number of stars (1-5), and any commentary (less than 500 characters).
There are four main models that interact in the background of the application. A Genre has many movies and has a name field. A Movie has a title, year, synopsis, belongs to a Genre, and has many Users through Reviews. A Review has a rating, content, and belongs to both a Movie and a User. Finally, a User has an email, username, password, and has many Movies through Reviews. With these associations, a user can navigate through the app and see things like all the users who watched a particular movie or all the movies that fit under a certain genre.
I also created an admin class that can not only create/edit anyone's reviews, but also create, edit, or delete genres and movie and their associated children. I decided to add an admin account once I realized that it wouldn't make sense to give any user all of those actions within the application. A user can visit every page within the app except for the pages that contain forms and all CRUD-related links/buttons are unavailable to them.
What did the process look like?
I tried to be a bit more organized with this project than I had been in the past. For the most part I utilized Microsoft OneNote to keep track of my ideas and plans. Even as I was finding bugs and things that I wanted to change, I kept an evergreen list going so that I wouldn't forget anything. I also kept a physical journal nearby to sketch or write out any ideas that I had, both while at my desk and while away. It was especially helpful when I had ideas at work from wherever I had left off.
Any takeaways after completing the project?
As always, having a plan and sticking to it helped the most. Whenever I felt like I might be getting too far ahead of myself, I took a look at the overall outline to recalibrate, get my bearings, and continue moving forward with the project.
This project has been the most mindful I've ever been with making meaningful commits; it even helped jog my memory when I would forget where I left off.
One thing I'm usually bad at is asking for help; I did a lot better job at asking for questions and getting that help sooner than later.
One thing I would still like to do in the future would be to utilize a movie API to retrieve the film data so that a user can search for a film they'd like to review.
Thanks for reading!
Top comments (0)