A modern learning management system built with React, Vite, and TailwindCSS that replicates core features of Udemy's platform.
- Secure user authentication using Clerk
- Protected routes for authenticated users
- Custom user profiles and dashboard
- Dynamic course listing and filtering
- Detailed course views with curriculum structure
- Integrated YouTube videos for course content
- Interactive course navigation
- Responsive design for all screen sizes
- Modern and clean UI using TailwindCSS
- Smooth animations with Framer Motion
- Loading states and error handling
- Mobile-first approach
- Advanced course search functionality
- Course categorization
- Dynamic filtering options
- Real-time search results
- Frontend Framework: React
- Build Tool: Vite
- Styling: TailwindCSS
- Authentication: Clerk
- Routing: React Router DOM
- State Management: React Context API
- Video Integration: YouTube API
- Animations: Framer Motion
- Code Quality: ESLint
- Node.js (Latest LTS version)
- npm/yarn
- Clone the repository
git clone https://github.com/yourusername/udemy-clone.git- Install dependencies
cd udemy-clone
npm install- Set up environment variables
Create a
.envfile in the root directory:
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_key
VITE_YOUTUBE_API_KEY=your_youtube_api_key- Start the development server
npm run devudemy-clone/
├── src/
│ ├── assets/ # Static assets and images
│ ├── components/ # Reusable UI components
│ │ └── student/ # Student-specific components
│ ├── context/ # React Context providers
│ ├── pages/ # Page components
│ │ └── student/ # Student routes
│ └── utils/ # Utility functions
├── public/ # Public assets
└── ...config files
Navbar.jsx: Navigation bar with authentication integrationCourseCard.jsx: Reusable course display componentCourseDetails.jsx: Detailed course view with curriculumHero.jsx: Landing page hero sectionSearchBar.jsx: Course search functionality
AppContext.jsx: Global state management for courses and user data
The project uses TailwindCSS with custom configurations:
- Custom text sizes for responsive design
- Custom grid layouts
- Responsive breakpoints
- Custom animations
- Shadow utilities
- Mobile-first approach
- Breakpoints:
- sm: 640px
- md: 768px
- lg: 1024px
- xl: 1280px
- Fetches relevant tutorial videos based on course content
- Implements caching for better performance
- Error handling for failed requests
- User registration and login
- Protected routes
- User profile management
- Environment variables for sensitive keys
- Protected API endpoints
- Secure authentication flow
- Input validation and sanitization
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint- ESLint configuration for code consistency
- React best practices
- Component-based architecture
- Custom hooks for reusable logic
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a pull request