{"id":21939031,"url":"https://github.com/jeffreyquan/moovi","last_synced_at":"2026-04-18T06:34:07.427Z","repository":{"id":39328930,"uuid":"218916005","full_name":"jeffreyquan/moovi","owner":"jeffreyquan","description":"A movie database using Ruby on Rails","archived":false,"fork":false,"pushed_at":"2023-01-19T15:37:19.000Z","size":26354,"stargazers_count":1,"open_issues_count":30,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-27T14:48:41.665Z","etag":null,"topics":["bootstrap","postgresql","ruby-on-rails","tmdb-api"],"latest_commit_sha":null,"homepage":"https://moovi-app.herokuapp.com/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeffreyquan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-01T04:58:44.000Z","updated_at":"2023-03-09T01:09:19.000Z","dependencies_parsed_at":"2023-02-11T07:15:31.911Z","dependency_job_id":null,"html_url":"https://github.com/jeffreyquan/moovi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffreyquan%2Fmoovi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffreyquan%2Fmoovi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffreyquan%2Fmoovi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffreyquan%2Fmoovi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffreyquan","download_url":"https://codeload.github.com/jeffreyquan/moovi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244973695,"owners_count":20541022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","postgresql","ruby-on-rails","tmdb-api"],"created_at":"2024-11-29T02:16:29.747Z","updated_at":"2026-04-18T06:34:02.378Z","avatar_url":"https://github.com/jeffreyquan.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moovi - A Movie App\n\n## Table of Contents\n* [Introduction](#introduction)\n* [How to get started](#how-to-get-started)\n* [Motivation](#motivation)\n* [Technologies](#technologies)\n* [Key Features](#key-features)\n* [Learnings](#learnings)\n* [Acknowledgement](#acknowledgement)\n* [Future Developments](#future-developments)\n* [Screenshots](#screenshots)\n\n\u003ca name=\"introduction\"\u003e\u003c/a\u003e\n## Introduction\n\nThis project is a web app that allows users to make lists of actors, directors and movies, which can be shared with everyone or private. It utilises The Movie DB's API. Check out their awesome [website](https://www.themoviedb.org/?language=en-US).\n\nFeel free to test out my app [here](https://moovi-app.herokuapp.com/). Make sure to create an account to start making lists.\n\n\u003ca name=\"how-to-get-started\"\u003e\u003c/a\u003e\n## How to get started\n\nFeel free to clone this repository.\n\nTo run locally, run the following in the root directory in the terminal:\n1. `npm install`\n2. `bundle install`\n3. `rails db:create`\n4. `rails db:migrate`\n5. `rails db:seed`\n6. `rails s`\n\n\u003ca name=\"motivation\"\u003e\u003c/a\u003e\n## Motivation\n\nThe aim of this project was to deliver an app that:\n\n* Implemented at least 3 models, with associations\n* Is a CRUD system in Rails\n* Handles invalid data\n* Uses Gems\n* Has basic authentication and authorisation\n* Is deployed to [Heroku](https://www.heroku.com/)\n\nThis was my second project at General Assembly's Software Engineering Immersive course at Sydney.\n\n\u003ca name=\"technologies\"\u003e\u003c/a\u003e\n## Technologies\n\n* Ruby on Rails\n* [Bootstrap](https://getbootstrap.com/)\n* SCSS\n* JavaScript\n* jQuery\n* [TMDB's API](https://www.themoviedb.org/documentation/api)\n\n## Gems\n\n* [PgSearch](https://github.com/Casecommons/pg_search) - added search functionality to the app for full and partial text\n* [httparty](https://github.com/jnunemaker/httparty) - used with TMDB's API\n* Bcrypt - for user authentication\n\n## Special Icons\n\n* [Font Awesome](https://fontawesome.com/)\n\n\u003ca name=\"key-features\"\u003e\u003c/a\u003e\n## Key Features\n\n* **Discovery home page** - explore movies, actors or directors you've never seen before.\n* **Custom lists** - create custom lists, each with one of the following categories: movies, actors or directors. These can be shared with everyone or private.\n* **Adding movies from TMDB** - simply use the search bar in the movies page and you can add movies from TMDB, which will include the director's profile and some of the casts.\n* **Search** - allows users to search the site for partial matches to their query.\n* **Associated content** - navigate to any movie, actor or director, you'll be able to see related content, such as trailers and other movies.\n\n\u003ca name=\"Learnings\"\u003e\u003c/a\u003e\n## Learnings\n\n* Model-View-Controller in the context of Ruby on Rails\n* Manipulation of hashes and arrays in Ruby\n* Use of multiple models and associations\n* Styling using Bootstrap\n* Form creation and validation\n* Using and navigating TMDB's API\n\n\u003ca name=\"acknowledgement\"\u003e\u003c/a\u003e\n## Acknowledgement\n\n* @amandachau36 - for helping me with deployment to Heroku and seeding the database on the platform\n* @anapgsilva - for showing me how to implement full text PgSearch and navigate APIs\n* @aleksanderbrymora - for helping me with implementing the search panel in the navigation bar\n* [TDMB](https://www.themoviedb.org/?language=en-US) - for their user-friendly API and incredible data\n\n\u003ca name=\"future-developments\"\u003e\u003c/a\u003e\n## Future Developments\n\n* **Filters** - adding filters for movies (e.g. year 2000 onwards) to allow for easier navigation\n* **Reviews and Ratings** - adding a reviews and ratings section where users can post their reviews and rate the movies out of five stars.\n\n\u003ca name=\"screenshots\"\u003e\u003c/a\u003e\n## Screenshots\n\n#### Home\n\n![Home page](/app/assets/images/Discovery.png)\n\n#### Movies\n\n![Movies page](/app/assets/images/Movies.png)\n\n#### Actors\n\n![Actors page](/app/assets/images/Actors.png)\n\n#### Directors\n\n![Directors page](/app/assets/images/Directors.png)\n\n#### Genres\n\n![Genres page](/app/assets/images/Genres.png)\n\n#### Public Lists\n\n![Public lists page](/app/assets/images/Public_Lists.png)\n\n#### TMDB Search Results\n\n![TMDB Search Results page](/app/assets/images/TMDB_Search_Results.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffreyquan%2Fmoovi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffreyquan%2Fmoovi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffreyquan%2Fmoovi/lists"}