A professional React application built for Netflix's Content & Business Products Engineering team. This dashboard demonstrates enterprise-level UI engineering capabilities including drag-and-drop functionality, data visualization, and responsive design.
Interactive content pipeline with drag-and-drop functionality, real-time analytics, and project management.
- Node.js >= 18.0.0
- npm >= 9.0.0
# Clone the repository
git clone https://github.com/MarkFeder/netflix-cbp-dashboard.git
cd netflix-cbp-dashboard
# Install dependencies
npm install
# Copy environment variables (optional)
cp .env.example .env
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThe application will be available at http://localhost:3000
Port already in use:
# The dev server uses port 3000 by default
# If port 3000 is occupied, Vite will automatically try the next available portModule not found errors:
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm installBuild errors:
# Clear Vite cache
rm -rf node_modules/.vite
npm run devnetflix-cbp-dashboard/
βββ src/
β βββ components/
β β βββ common/ # Reusable UI components
β β β βββ Button/
β β β βββ Card/
β β β βββ Modal/
β β βββ features/ # Feature-specific components
β β β βββ pipeline/ # Pipeline drag-and-drop
β β β βββ schedule/ # Timeline view
β β β βββ localization/ # Language tracking
β β β βββ analytics/ # Data visualization
β β βββ layout/ # Layout components
β β βββ Header/
β β βββ Navigation/
β βββ hooks/ # Custom React hooks
β βββ styles/ # Global styles and CSS modules
β βββ utils/ # Helper functions and constants
β βββ App.jsx # Main application component
β βββ main.jsx # Application entry point
βββ public/ # Static assets
βββ .idea/ # WebStorm/Rider IDE configuration
βββ index.html # HTML entry point
βββ vite.config.js # Vite configuration
βββ package.json # Dependencies and scripts
βββ README.md # This file
- Drag-and-drop interface for moving projects between stages
- Five production stages: Pitch β Greenlight β Pre-Production β Production β Post-Production
- Real-time visual feedback and state management
- Chronological view of all projects
- Release date tracking and visualization
- Progress indicators for each project
- Multi-language support tracking (35+ languages)
- Animated progress bars
- Status indicators (Completed, In Progress, Pending)
- Budget distribution by genre (Chart.js)
- Stage distribution visualization
- Real-time statistics
- Modal-based project creation
- Form validation
- Instant UI updates
- React 18 - Modern React with hooks
- Vite - Lightning-fast build tool
- Chart.js - Data visualization
- CSS3 - Custom styling with CSS variables
- ESLint - Code linting
- Prettier - Code formatting
--netflix-red: #E50914 /* Primary brand color */
--netflix-black: #141414 /* Background */
--accent-cyan: #00D9FF /* Interactive elements */
--accent-green: #46D369 /* Success states */
--accent-yellow: #FFD700 /* Warnings */- Display: Bebas Neue (headers, titles)
- Body: IBM Plex Mono (content, UI text)
# Development
npm run dev # Start dev server with hot reload
# Building
npm run build # Production build
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint errors
npm run format # Format code with Prettier
# Testing (when implemented)
npm run test # Run tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage reportThe project includes pre-configured WebStorm/Rider settings in .idea/:
- Code style configuration
- ESLint integration
- Prettier formatting
- Git integration
- Project structure
Simply open the project folder in WebStorm/Rider and everything will be configured automatically.
The project uses:
- ESLint for JavaScript linting
- Prettier for code formatting
- Configured for React best practices
Format on save is enabled by default in WebStorm/Rider.
import { Button } from '@components/common/Button';
<Button variant="primary" onClick={handleClick}>
Click Me
</Button>import { Card } from '@components/common/Card';
<Card title="My Card" badge="New">
Content goes here
</Card>import { Modal } from '@components/common/Modal';
<Modal isOpen={isOpen} onClose={handleClose} title="My Modal">
Modal content
</Modal>The project uses path aliases for cleaner imports:
import { Button } from '@components/common/Button';
import { formatDate } from '@utils/helpers';
import { INITIAL_PROJECTS } from '@utils/constants';Create a .env file in the root directory (or copy from .env.example):
cp .env.example .envAvailable environment variables:
# API Configuration
VITE_API_URL=http://localhost:3000/api
VITE_GRAPHQL_URL=http://localhost:3000/graphql
# Feature Flags
VITE_ENABLE_ANALYTICS=true
VITE_ENABLE_DEBUG_MODE=false
# Environment
VITE_APP_ENV=development
VITE_APP_VERSION=1.0.0Note: All environment variables must be prefixed with VITE_ to be exposed to the client-side code.
The vite.config.js file includes:
- Path aliases configuration
- Build optimization
- Code splitting strategy
- Development server settings
npm run buildThis creates an optimized production build in the dist/ folder.
- Vercel:
vercel --prod - Netlify: Drag and drop
distfolder - AWS S3: Upload
distcontents to S3 bucket - Docker: Build container with production build
This project showcases skills required for Netflix CBP Engineering:
β UI Engineering Excellence
- Complex React component architecture
- Modern JavaScript (ES6+)
- CSS3 with custom design system
β Component Architecture
- Reusable component patterns
- Proper separation of concerns
- Scalable folder structure
β Drag-and-Drop Functionality
- HTML5 Drag and Drop API
- State management during drag operations
- Visual feedback
β Data Visualization
- Chart.js integration
- Responsive charts
- Custom styling
β Responsive Design
- Mobile-first approach
- Flexible layouts
- Touch-friendly interfaces
β Performance Optimization
- Code splitting ready
- Efficient re-rendering
- Optimized asset loading
β Accessibility
- Semantic HTML
- ARIA labels
- Keyboard navigation
- Focus management
MIT
This is a portfolio project. For questions or suggestions, please open an issue.
Built for Netflix Content & Business Products Engineering
Demonstrating production-ready code quality, enterprise design patterns, and scalable architecture.
