Ian Monroe
Portfolio
Movieclub.app

Movieclub.app

March 2026 View project
websitelaravelvuecontent managementphpsoftware

A web application that facilitates virtual movie clubs, enabling groups of friends or communities to schedule, watch, and discuss movies together online. Built with Laravel, Vue.js, and Inertia.js, it provides real-time chat during movie viewing, post-movie reviews and ratings, and scheduled meeting management with timezone awareness.

Features

  • User registration and authentication with role-based access
  • Movie club creation and management (up to 100 members per club)
  • Public club directory with search, join requests, and admin approval
  • Club slugs for SEO-friendly URLs (e.g., /clubs/friday-film-club)
  • Club statistics page with member activity, genre distribution, and rating trends
  • TMDB API movie search with advanced filtering (genre, year, rating, platform)
  • Saved movie searches — save and reuse filter combinations
  • Movie collections — curated, thematic movie lists
  • Personalized movie recommendations powered by user preferences and club activity
  • Scheduled movie watching sessions with timezone-aware scheduling
  • Calendar feed (iCal) subscription for club meeting schedules
  • Real-time chat during movie viewing with emoji picker and Markdown support
  • Half-star rating and review system (0.5-5 stars) with spoiler protection
  • User rating analytics on profile (average, genre breakdown, distribution)
  • Movie chooser rotation system (round-robin by default)
  • Discussion boards with threaded posts, Markdown formatting, and discussion tags
  • Watchlist system (personal and club watchlists)
  • RSVP tracking with Google Calendar integration
  • Admin dashboards for club and system management
  • Registration toggle for site-wide access control
  • Keyboard shortcuts for fast navigation (press ? for help)
  • Onboarding checklist for new users
  • Legal pages, abuse reporting, and public changelog
  • Duplicate movie prevention for meeting selection
  • Streaming availability — see where to stream, rent, or buy movies (via TMDB/JustWatch)
  • Pre-meeting countdown timers on dashboard and meeting pages
  • Meeting reminder emails (30 min before) and post-meeting review prompts
  • Email notification preferences — opt out of reminders from your profile
  • Club movie history page with stats, ratings, sorting, and pagination
  • Emoji reactions on chat messages and discussion posts
  • Click-to-reveal spoiler protection for reviews and discussion posts
  • Google Analytics integration (production only)
  • Cinema Gold (#D4AF37) dark theme designed for cinematic immersion

Tech Stack

  • Backend: Laravel 13 (PHP 8.3)
  • Frontend: Vue.js 3 (Composition API) + Inertia.js
  • Styling: Tailwind CSS
  • Database: MySQL 8.0
  • Cache/WebSockets: Redis + Laravel Echo Server
  • Containerization: Docker + Docker Compose
  • Movie Data: TMDB API
  • CI/CD: GitHub Actions with test coverage reporting