Skip to content

About

Netflix Content-Based Personalization Dashboard

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Netflix CBP - Content Production Dashboard

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.

🎬 Demo

Application Demo

Interactive content pipeline with drag-and-drop functionality, real-time analytics, and project management.

πŸš€ Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • npm >= 9.0.0

Installation

# 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 preview

The application will be available at http://localhost:3000

Troubleshooting

Port already in use:

# The dev server uses port 3000 by default
# If port 3000 is occupied, Vite will automatically try the next available port

Module not found errors:

# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm install

Build errors:

# Clear Vite cache
rm -rf node_modules/.vite
npm run dev

πŸ“ Project Structure

netflix-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

✨ Key Features

1. Content Pipeline Management

  • 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

2. Scheduling & Timeline

  • Chronological view of all projects
  • Release date tracking and visualization
  • Progress indicators for each project

3. Localization Workflow

  • Multi-language support tracking (35+ languages)
  • Animated progress bars
  • Status indicators (Completed, In Progress, Pending)

4. Analytics Dashboard

  • Budget distribution by genre (Chart.js)
  • Stage distribution visualization
  • Real-time statistics

5. Project Management

  • Modal-based project creation
  • Form validation
  • Instant UI updates

πŸ›  Technology Stack

  • 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

🎨 Design System

Color Palette

--netflix-red: #E50914      /* Primary brand color */
--netflix-black: #141414    /* Background */
--accent-cyan: #00D9FF      /* Interactive elements */
--accent-green: #46D369     /* Success states */
--accent-yellow: #FFD700    /* Warnings */

Typography

  • Display: Bebas Neue (headers, titles)
  • Body: IBM Plex Mono (content, UI text)

πŸ§ͺ Development

Available Scripts

# 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 report

IDE Setup (WebStorm/Rider)

The 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.

Code Style

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.

πŸ“¦ Component Library

Common Components

Button

import { Button } from '@components/common/Button';

<Button variant="primary" onClick={handleClick}>
  Click Me
</Button>

Card

import { Card } from '@components/common/Card';

<Card title="My Card" badge="New">
  Content goes here
</Card>

Modal

import { Modal } from '@components/common/Modal';

<Modal isOpen={isOpen} onClose={handleClose} title="My Modal">
  Modal content
</Modal>

Path Aliases

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';

πŸ”§ Configuration

Environment Variables

Create a .env file in the root directory (or copy from .env.example):

cp .env.example .env

Available 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.0

Note: All environment variables must be prefixed with VITE_ to be exposed to the client-side code.

Vite Configuration

The vite.config.js file includes:

  • Path aliases configuration
  • Build optimization
  • Code splitting strategy
  • Development server settings

πŸš€ Deployment

Build for Production

npm run build

This creates an optimized production build in the dist/ folder.

Deployment Options

  • Vercel: vercel --prod
  • Netlify: Drag and drop dist folder
  • AWS S3: Upload dist contents to S3 bucket
  • Docker: Build container with production build

🎯 Skills Demonstrated

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

πŸ“ License

MIT

🀝 Contributing

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.

About

Netflix Content-Based Personalization Dashboard

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages