Full-Stack Development Project completed as part of The Hacking Project (THP) Full-Stack Developer Bootcamp validation.
CinΓ©Room is a modern Ruby on Rails 8.0 platform that transforms independent film viewing into exclusive experiences. The application allows users to discover and book private film screenings in unique, unconventional venues (art galleries, rooftops, private mansions) with opportunities to meet the film's creative team.
The concept addresses the need for a premium alternative to traditional cinema by creating immersive events around independent films. Users can book limited seats for private premieres, meet the team (directors, actors, technical crew), and enjoy a unique evening experience.
π Live Demo: cineroom-95309b4cb0ca.herokuapp.com
π Trello: cineroom-Trello
- Discover events on the homepage with upcoming screenings
- Browse available screenings with filters (date, venue, genre)
- View event details: film info, synopsis, venue, date, special guests
- Create account or sign in securely
- Book seats via secure Stripe payment integration
- Receive confirmation email with practical details
- Attend exclusive screening experience
- Leave reviews and ratings after the event
- Manage bookings and favorites in personal dashboard
- Access comprehensive admin interface
- Create new films with complete metadata
- Schedule events linked to approved films
- Configure venue, date, capacity, and pricing
- Monitor real-time booking status and availability
- Send communications to participants
- Moderate user reviews and feedback
- Track analytics and revenue statistics
- Real-time booking and participant oversight with AJAX updates
- Analytics dashboard for revenue and attendance tracking
- GDPR-compliant user data management with cookie consent
- Comprehensive movie approval workflow management
Discover upcoming exclusive cinema events with elegant filtering and search capabilities
Complete event information with venue details, pricing, and secure booking functionality
Personal space for managing bookings, reviews, and favorite movies
Comprehensive admin panel for managing events, users, and analytics
Secure Stripe integration for seamless booking experience
| Category | Technologies |
|---|---|
| Backend | Ruby 3.4.5, Rails 8.0.2.1 |
| Frontend | Stimulus JS, Tailwind CSS 4.3.0 |
| Database | PostgreSQL with ActiveRecord |
| Authentication | Devise with Confirmable & Bcrypt |
| Payments | Stripe API integration |
| File Storage | Cloudinary (production), ActiveStorage |
| Job Processing | SolidQueue (Rails 8.0 native) |
| ActionMailer with Letter Opener (dev) | |
| Admin Panel | Custom admin interface with AJAX |
| Maps | Leaflet with Geocoder |
| Deployment | Heroku with PostgreSQL addon |
| Cache | SolidCache (Rails 8.0 native) |
Core Models & Relationships:
User (email, password_digest, first_name, last_name, role)
βββ has_many :participations
βββ has_many :reviews
βββ has_many :favorites
βββ has_many :movies (as creator)
Movie (title, synopsis, director, duration, genre, year, validation_status)
βββ belongs_to :user (creator)
βββ has_many :events
βββ has_many :reviews
βββ has_many :favorites
Event (title, venue_name, venue_address, event_date, max_capacity, price_cents, status)
βββ belongs_to :movie
βββ has_many :participations
βββ has_many :users (through :participations)
Participation (stripe_payment_id, status, seats)
βββ belongs_to :user
βββ belongs_to :event
βββ validates uniqueness of user_id scoped to event_id
Review (rating, comment)
βββ belongs_to :user
βββ belongs_to :movie
βββ belongs_to :event
Favorite (user-movie bookmark system)
βββ belongs_to :user
βββ belongs_to :movie- SolidQueue: Native background job processing without Redis
- SolidCache: Built-in caching solution
- Authentication: Secure user management with email confirmation
- GDPR Compliance: Cookie consent system with French localization
- Responsive Design: Mobile-first Tailwind CSS implementation
- AJAX Integration: Real-time admin interface updates without page refresh
- Ruby 3.4.5+
- Rails 8.0.2.1
- PostgreSQL 14+
- Node.js 18+ (for Stimulus)
# Clone the repository
git clone https://github.com/Paarroo/Final_Project_THP_Fullstack_Ruby0nRails_CineRoom.git
cd Final_Project_THP_Fullstack_Ruby0nRails_CineRoom
# Install Ruby dependencies
bundle install
# Install JavaScript dependencies
npm install
# Database setup
rails db:create
rails db:migrate
rails db:seed
# Start the development server
rails serverDevelopment (after rails db:seed):
Admin: admin@cineroom.com / password123
Creator: creator.test@example.com / password123
User: user.test@example.com / password123
Creator 2: prolific.creator@example.com / password123
Production:
Admin credentials are configured via environment variables
Create a new user account through the registration process
- Authentication Security: Bcrypt password hashing with Devise
- Email Validation: Token-based account confirmation system
- Data Validation: Comprehensive server-side validation
- CSRF Protection: Rails built-in security measures
- Payment Security: PCI-compliant Stripe integration with secure token handling
- GDPR Compliance: Full cookie consent system with French localization
- Role-based Access: Secure admin interface with proper authorization
Main Pages:
- Homepage with upcoming events showcase
- Event detail pages with complete information
- Stripe-integrated payment flow
- Booking confirmation pages
- User dashboard (bookings, reviews, favorites)
- Advanced admin interface
JavaScript Components (Stimulus):
- Dynamic filtering system on homepage
- Real-time seat availability counter
- Stripe payment form integration
- Review rating system with stars
- Confirmation alerts before cancellation
- AJAX admin actions without page refresh
Design Principles:
- Mobile-First: Responsive design optimized for all devices
- Modern Styling: Tailwind CSS 4.1 with custom gold branding
- Interactive Elements: Stimulus controllers for dynamic UX
- Real-time Updates: AJAX-powered admin interface
- Accessibility: Semantic HTML and keyboard navigation support
This project demonstrates mastery of full-stack development principles taught in The Hacking Project bootcamp:
- MVC Architecture: Proper separation of concerns using Rails scaffolds
- Database Design: Complex associations and data modeling
- API Integration: Stripe payments and external services
- Authentication: Secure user management with Devise
- Background Jobs: SolidQueue for email processing
- Modern JavaScript: Stimulus controllers for interactive features
- Responsive Design: Mobile-first Tailwind CSS implementation
- AJAX Integration: Real-time interface updates
- Payment Forms: Secure Stripe checkout implementation
- Production Deployment: Heroku with proper environment configuration
- Security Best Practices: CSRF protection, secure authentication
- Data Protection: GDPR compliance and privacy controls
- Error Handling: Comprehensive validation and error management
The application is deployed on Heroku with:
- PostgreSQL database addon for data persistence
- Cloudinary for image storage and optimization
- SSL/TLS encryption for secure connections
- Environment-based configuration for security
- Automated deployments from main branch
- Comprehensive database seeding with FactoryBot and Faker
- Transactional email delivery via SMTP
- Asset optimization with Tailwind CSS compilation
- Background job processing with SolidQueue
- Error monitoring and performance tracking
ThΓ©o BANNERY - Lead Developer, Project Architect & UI/UX Design
Florian BENOIT - Full-Stack Developer & UI/UX Designer
This project was developed as part of The Hacking Project bootcamp curriculum. While primarily an educational project, contributions and feedback are welcome for learning purposes.
- RESTful routing conventions following Rails best practices
- Rails 8.0 best practices with modern framework features
- Comprehensive testing with RSpec and FactoryBot
- GDPR compliance requirements for European data protection
- Mobile-first responsive design principles
This project is licensed under the MIT License - see the LICENSE.md file for details.
- The Hacking Project (THP) - For providing comprehensive full-stack development training
- Rails Community - For the amazing framework and ecosystem
- Stripe - For secure payment processing infrastructure
- Heroku - For reliable cloud hosting platform
- Independent Filmmakers - For inspiring unique cinema experiences
π¬ Built with β€οΈ and Rails 8.0.2 as part of THP Full-Stack Developer Bootcamp
"Where independent cinema meets modern web development" β¨πΏ
