Skip to content

EduClick is a modern Learning Management System designed to revolutionize education with seamless course creation, video delivery, and secure payments. Empowering both educators and students with intuitive tools and a cutting-edge platform.

License

Notifications You must be signed in to change notification settings

ismailsoud/EduClick

Repository files navigation

EduClick - Modern Learning Management System

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.

EduClick Platform

🌟 Features

For Students

  • 📚 Browse & filter courses
  • 💳 Secure course purchases through Stripe
  • 📝 Track progress with chapter completion
  • 📊 Personal dashboard with progress tracking
  • 🎥 High-quality video streaming with HLS

For Teachers

  • 📝 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

Technical Features

  • 🔐 Authentication using Clerk
  • 💾 MySQL Database with Prisma ORM
  • 🎨 Modern UI with Tailwind CSS
  • 🚀 Built on Next.js 13
  • 📤 File uploads via UploadThing

🚀 Getting Started

Prerequisites

  • Node.js 18.x.x
  • MySQL database (We recommend PlanetScale)
  • Accounts for:
    • Clerk (Authentication)
    • UploadThing (File storage)
    • Mux (Video processing)
    • Stripe (Payments)

Installation

  1. Clone the repository:
git clone https://github.com/ismailsoud/EduClick.git
  1. Install dependencies:
npm install
  1. 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=
  1. Initialize the database:
npx prisma generate
npx prisma db push
  1. Start the development server:
npm run dev

🛠️ Tech Stack

  • 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

🤝 Contributing

We welcome contributions to EduClick! Please feel free to submit issues and pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

👥 Authors

  • Ismail Soudassi - Initial work
  • Abdelmounim Ikhwane - Initial work

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Thanks to all contributors who have helped shape EduClick
  • Special thanks to the open-source community for the amazing tools that made this possible

About

EduClick is a modern Learning Management System designed to revolutionize education with seamless course creation, video delivery, and secure payments. Empowering both educators and students with intuitive tools and a cutting-edge platform.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published