Skip to content

Repository files navigation

Movie Tracker

A movie watchlist manager. Create named lists, search for movies, and bookmark them with a comment. Movie data (title, overview, poster, rating, genre, director, actors, runtime, Rotten Tomatoes score) is fetched live from the OMDB API rather than stored as static fixtures.

Status: Core features complete; ideas for next steps below.

Tech Stack

  • Rails 8.1 / Ruby 3.3.5
  • PostgreSQL
  • Hotwire (Turbo + Stimulus), import maps — no webpack
  • Bootstrap 5 + Font Awesome 6 + custom SCSS (sassc-rails)
  • SimpleForm for forms
  • RSpec for testing (models, controllers, requests, routing)
  • dotenv-rails for environment variables
  • Kamal + Docker for deployment

Features

  • Create and view watchlists
  • Search for movies via OMDB and add them to a list with a comment
  • Remove a movie from a list
  • Delete a list (and its bookmarks)

Roadmap

  • The next milestone is an AI recommendation assistant: the user sets lasting preferences on their profile (genres, favourite films, dealbreakers) and adds an in-the-moment prompt — mood, available time, who they're watching with — and the assistant suggests what to watch and where to stream it, drawing on both.

Models

  • Movie — title, overview, poster_url, rating, year, genre, director, actors, runtime, rotten_tomatoes; has_many :bookmarks, has_many :lists, through: :bookmarks
  • List — name; has_many :bookmarks, dependent: :destroy, has_many :movies, through: :bookmarks
  • Bookmark — join model linking a list and a movie with a comment (minimum 6 characters); a movie can only appear once per list

Routes

Routes are manually defined rather than using resources.

GET    /lists           lists#index
GET    /lists/new       lists#new
POST   /lists           lists#create
GET    /lists/:id       lists#show
DELETE /lists/:id       lists#destroy
POST   /bookmarks       bookmarks#create
DELETE /bookmarks/:id   bookmarks#destroy
GET    /movies/search   movies#search
POST   /movies/select   movies#select

Setup

bundle install
echo "OMDB_API_KEY=your_key_here" > .env
bin/rails db:setup
bin/rails server

Environment Variables

  • OMDB_API_KEY — required for movie search, adding movies to a list, and seeding

Development Commands

bin/rails server          # start dev server
bin/rails db:seed         # seed with curated OMDB-fetched lists and movies
bundle exec rspec         # run the test suite
bundle exec rubocop       # lint
bundle exec brakeman      # security scan

About

Rails watchlist app — search movies via the OMDB API and organise them into lists with comments. Rails 8, Hotwire, RSpec.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages