Cinema Flix is a modern, full-stack movie discovery and ticket booking platform built with React and Go. Users can browse movies with advanced search and filtering, view detailed movie information, and book tickets with Google OAuth authentication.
- Advanced Search: Search movies by title, director, cast, or genre
- Smart Filtering: Filter by genre, category (Now Playing, Coming Soon, Trending)
- Multiple Views: Switch between grid and list layouts
- Real-time Results: Instant search and filter updates
- IMDB-style Pages: Comprehensive movie information with ratings, cast, and plot
- Rich Media: High-quality posters, backdrops, and trailer integration
- Cast & Crew: Detailed actor information with photos and character names
- Box Office Data: Budget, earnings, and production information
- Show Times: Available screening times with booking integration
- Google OAuth 2.0: Secure login with Google accounts
- User Profiles: Personalized user experience with profile management
- Session Management: Persistent login state with secure logout
- Professional Logging: Comprehensive authentication activity tracking
- Show Time Selection: Choose from available screening times
- Booking Interface: Intuitive ticket reservation system
- User Management: Track bookings with authenticated users
- Mobile-First: Optimized for all screen sizes
- Material Design: Clean, modern UI with Material-UI components
- Dark Theme: Professional cinema-themed interface
- Accessibility: ARIA labels and keyboard navigation support
- React 19 - Modern React with latest features
- Material-UI (MUI) - Comprehensive component library
- React Router - Client-side routing
- JavaScript ES6+ - Modern JavaScript features
- Go (Golang) - High-performance backend server
- Fiber - Express-inspired web framework
- Google OAuth 2.0 - Secure authentication
- Environment Variables - Secure configuration management
- Professional Logging - Comprehensive request/response tracking
- CORS Support - Cross-origin resource sharing
- Hot Reload - Development server with auto-refresh
- Linting & Formatting - Code quality tools
- Node.js (v16 or higher)
- Go (v1.19 or higher)
- Google Cloud Console account for OAuth setup
git clone <your-repo-url>
cd Cinema_Flix
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google+ API
- Create OAuth 2.0 credentials:
- Authorized JavaScript origins:
http://localhost:3000
- Authorized redirect URIs:
http://localhost:8080/auth/google/callback
- Authorized JavaScript origins:
cd server
# Create environment file
cat > .env << EOF
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
redirectURL=http://localhost:8080
PORT=8080
CLIENT_URL=http://localhost:3000
EOF
# Install dependencies and run
go mod tidy
go run main.go
cd client
# Create environment file
cat > .env << EOF
REACT_APP_BACKEND_URL=http://localhost:8080
REACT_APP_ENV=development
EOF
# Install dependencies and run
npm install
npm start
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Health Check: http://localhost:8080/health
GET /auth/google/login
- Initiate Google OAuth loginGET /auth/google/callback
- Handle OAuth callbackPOST /auth/logout
- User logout with logging
GET /health
- Server health check
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
redirectURL=http://localhost:8080
PORT=8080
CLIENT_URL=http://localhost:3000
REACT_APP_BACKEND_URL=http://localhost:8080
REACT_APP_ENV=development
- Featured movie sections with modern card layouts
- Quick access to movie browsing
- Responsive navigation with authentication
- Advanced search and filtering interface
- Grid/List view toggle
- Category tabs (Now Playing, Coming Soon, Trending)
- Real-time search results
- IMDB-style comprehensive movie information
- Cast and crew details with photos
- Ticket booking interface
- Trailer integration
- Clean Google OAuth login interface
- User profile dropdown with logout
- Secure session management
Backend:
GOOGLE_CLIENT_ID=prod_client_id
GOOGLE_CLIENT_SECRET=prod_client_secret
redirectURL=https://your-api-domain.com
PORT=8080
CLIENT_URL=https://your-frontend-domain.com
Frontend:
REACT_APP_BACKEND_URL=https://your-api-domain.com
REACT_APP_ENV=production
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Material-UI for the excellent component library
- Google OAuth for secure authentication
- Unsplash for high-quality movie poster placeholders
- Go Fiber for the fast and flexible backend framework
For support and questions:
- Create an Issue
- Check the Documentation
- Review the Requirements
Cinema Flix - Discover Movies. Book Tickets. Enjoy Cinema. π¬β¨