A modern movie and TV show discovery platform that enables users to create watchlists, find viewing partners, and share recommendations.
PairFlix is a full-stack application that helps users discover movies and TV shows, manage personal watchlists, and connect with others who share similar viewing interests. The platform features a React frontend, Express.js backend with PostgreSQL, and a comprehensive admin panel.
π― Phase 3 Complete - Component library refinement, TypeScript strict mode compliance, performance optimization, and production deployment readiness achieved. Planning Phase 4 - Advanced features including AI-powered recommendations, enhanced social platform, and mobile application development.
This is a monorepo containing multiple applications and shared libraries:
app.client/- Main user-facing React applicationapp.admin/- Administrative panel for platform managementbackend/- Express.js API server with PostgreSQL database
lib.components/- Reusable React component library with TypeScript and styled-components
docs/- Technical documentation and guidesscripts/- Development and migration scripts
- Node.js 18+ and npm
- PostgreSQL 14+
- Docker (optional, for containerized development)
-
Clone the repository
git clone <repository-url> cd pairflix
-
Install dependencies
npm install
-
Set up the database
# Using Docker (recommended) docker-compose up -d postgres # Or install PostgreSQL locally and create a database createdb pairflix_development
-
Configure environment variables
# Copy example environment files cp backend/.env.example backend/.env cp app.client/.env.example app.client/.env # Edit the files with your configuration
-
Start the development servers
# Start all services npm run dev # Or start individually npm run dev:backend # API server (port 3000) npm run dev:client # Client app (port 5173) npm run dev:admin # Admin panel (port 5174)
The primary user interface where users can:
- Browse and search movies/TV shows using TMDB API
- Create and manage personal watchlists
- Rate and review content
- Find viewing partners with similar interests
- View social activity feeds from matched partners and recommendations
Access: http://localhost:5173
Administrative interface for platform management:
- User management and moderation
- Content management and reporting
- System monitoring and analytics
- Application settings and configuration
Access: http://localhost:5174
RESTful API server providing:
- User authentication and authorization
- Watchlist and rating management
- Matching algorithm for finding viewing partners
- TMDB integration for movie/TV data
- Comprehensive audit logging
- Rate limiting and security features
API Base: http://localhost:3000/api
Root Level:
npm run dev- Start all development serversnpm run build- Build all applications for productionnpm run test- Run all test suitesnpm run lint- Lint all projectsnpm run format- Format code using Prettier
Individual Applications:
npm run dev:backend- Start backend API servernpm run dev:client- Start client development servernpm run dev:admin- Start admin panel development servernpm run dev:components- Start component library Storybook
Frontend:
- React 18+ with TypeScript
- Vite for build tooling
- React Router for navigation
- React Query for API state management
- styled-components for styling
Backend:
- Node.js with Express.js
- TypeScript for type safety
- PostgreSQL with Sequelize ORM
- JWT authentication
- Rate limiting with express-rate-limit
- Comprehensive error handling and logging
Testing:
- Jest for unit testing
- React Testing Library for component testing
- Supertest for API testing
Development Tools:
- ESLint for code linting
- Prettier for code formatting
- Husky for Git hooks
- lint-staged for pre-commit checks
- Rate Limiting: Comprehensive rate limiting to prevent DoS attacks
- Authentication: JWT-based user authentication
- Authorization: Role-based access control (User/Admin)
- Input Validation: Request validation and sanitization
- CORS: Configurable CORS policies
- Activity Feeds: Social activity feeds with partner-based filtering and privacy controls
PostgreSQL database with comprehensive schema including:
- User management and preferences
- Content and watchlist management
- Matching and recommendation engine
- Social activity tracking with partner-based filtering
- Application settings and configuration
See db-schema.md for detailed schema documentation.
Comprehensive testing strategy covering:
- Unit Tests: Individual component and function testing
- Integration Tests: API endpoint and service testing
- Component Tests: React component behavior testing
- E2E Tests: Full application workflow testing
Current Status: β 36/36 tests passing (100% pass rate)
Run tests:
npm run test # All tests
npm run test:backend # Backend tests only
npm run test:client # Client tests only
npm run test:components # Component library tests- π Documentation Index - Complete documentation catalog organized by audience and topic
- π Development Setup - Quick start guide for local development
- ποΈ Architecture Overview - System design and technical architecture
- Backend API - Node.js/Express API server with comprehensive security features
- Main Application - React client application for end users
- Admin Panel - Administrative interface and system management
- Component Library - Shared UI component system and design standards
- API Documentation - Complete REST API reference with examples
- Database Schema - Database design and relationships
- Security Guide - Security implementation, rate limiting, and best practices
- Decision Log - Comprehensive record of architectural and implementation decisions
π‘ For complete documentation navigation, visit the Documentation Index
Component Library Refinement and Standardization
- β Eliminated all component duplication across applications
- β Standardized layout system with unified components
- β TypeScript strict mode compliance (100%)
- β Performance optimization with virtual scrolling and debounced search
- β Production Docker builds with multi-stage optimization
- β Comprehensive test coverage (36/36 tests passing)
Key Achievements:
- Zero component duplication between apps
- 50-60% reduction in Docker image sizes
- Sub-2 second page load times
- 100% TypeScript strict mode compliance
- Production-ready deployment configuration
Advanced Features and Platform Enhancement
High Priority Objectives:
- Enhanced Recommendation Engine - ML/AI-powered content recommendations
- Advanced Social Platform - Discussion groups, watch parties, social feeds
- Real-time Features - Live notifications, activity streams, WebSocket integration
Medium Priority Objectives: 4. Mobile Application - React Native app with feature parity 5. Advanced Search - Enhanced discovery with filters and personalization 6. Analytics Platform - User insights and platform performance dashboard
Timeline:
- Q1 2025: Technical design and user research
- Q2-Q3 2025: Core feature development
- Q4 2025: Testing, optimization, and deployment
Success Metrics:
- 40%+ increase in user engagement
- 60%+ adoption rate for social features
- 50%+ mobile user adoption within 6 months
- 99.9% platform uptime
npm run dev # Start all development serversnpm run build # Build all applicationsdocker-compose up -d # Start all services with DockerProduction Features:
- Multi-stage Docker builds for optimized images
- Nginx reverse proxy with security headers
- Health checks and automated rollback
- Resource limits and scaling configuration
See prd.md for detailed production deployment instructions.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the coding standards
- Run tests (
npm run test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Write tests for new features
- Use conventional commit messages
- Ensure all linting passes
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: Report bugs and request features via GitHub Issues
- Documentation: Check the
/docsdirectory for detailed guides - Development: See individual application READMEs for specific setup instructions
Built with β€οΈ for movie and TV enthusiasts
Phase 3 completed with production-ready architecture. Phase 4 planning in progress for advanced features and platform enhancement.