EduClick is a comprehensive Learning Management System (LMS) built with modern web technologies. It provides a robust platform for both educators and students, featuring course management, video content delivery, and integrated payment processing.
- 📚 Browse & filter courses
- 💳 Secure course purchases through Stripe
- 📝 Track progress with chapter completion
- 📊 Personal dashboard with progress tracking
- 🎥 High-quality video streaming with HLS
- 📝 Comprehensive course creation tools
- 📹 Video upload and processing via Mux
- 📎 File attachments and course materials
- ✏️ Rich text editor for detailed descriptions
- 🔄 Drag-and-drop chapter reordering
- 🔐 Authentication using Clerk
- 💾 MySQL Database with Prisma ORM
- 🎨 Modern UI with Tailwind CSS
- 🚀 Built on Next.js 13
- 📤 File uploads via UploadThing
- Node.js 18.x.x
- MySQL database (We recommend PlanetScale)
- Accounts for:
- Clerk (Authentication)
- UploadThing (File storage)
- Mux (Video processing)
- Stripe (Payments)
- Clone the repository:
git clone https://github.com/ismailsoud/EduClick.git
- Install dependencies:
npm install
- Configure environment variables:
Create a
.env
file with the following:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_SIGN_UP_URL=
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=
DATABASE_URL=
UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=
MUX_TOKEN_ID=
MUX_TOKEN_SECRET=
STRIPE_API_KEY=
NEXT_PUBLIC_APP_URL=http://localhost:3000
STRIPE_WEBHOOK_SECRET=
NEXT_PUBLIC_TEACHER_ID=
- Initialize the database:
npx prisma generate
npx prisma db push
- Start the development server:
npm run dev
- Frontend: Next.js 13, React, Tailwind CSS
- Backend: Next.js API Routes
- Database: MySQL with Prisma ORM
- Authentication: Clerk
- File Storage: UploadThing
- Video Processing: Mux
- Payments: Stripe
- UI Components: Radix UI, Material-UI
- State Management: Zustand
- Forms: React Hook Form
- Data Validation: Zod
We welcome contributions to EduClick! Please feel free to submit issues and pull requests.
- Fork the repository
- Create your 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
- Ismail Soudassi - Initial work
- Abdelmounim Ikhwane - Initial work
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to all contributors who have helped shape EduClick
- Special thanks to the open-source community for the amazing tools that made this possible