CourseMagnet is a powerful e-learning platform built with Next.js 13. Browse and filter a diverse range of courses, seamlessly purchase them using Stripe, and track your progress with an intuitive dashboard. Whether you're a student or a teacher, CourseMagnet provides a dynamic experience.
- 📚 Explore & Filter Courses
- 💳 Secure Course Purchases via Stripe
- ✅ Track Chapter Completion Status
- 📊 Progress Calculations for Each Course
- 🎓 Personalized Student Dashboard
- 👩🏫 Empowering Teacher Mode
- 🆕 Effortlessly Create Courses & Chapters
- 🔄 Intuitive Chapter Position Reordering with Drag 'n' Drop
- 📎 Multimedia Management: Thumbnails, Attachments, and Videos using UploadThing
- 🎥 Video Processing and HLS Playback with Mux
- 📝 Rich Text Editing for Chapter Descriptions
- 🔐 Secure Authentication with Clerk
- 🔄 Robust ORM Integration with Prisma
- 🗃️ Scalable MySQL Database Using Planetscale
Deployment: Link
- Clone the repository:
git clone https://github.com/MeetMulik/coursemagnet.git
cd coursemagnet
- Install the dependencies for both the frontend and backend:
# Install dependencies
npm install
- Set the environment variables for backend
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
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=
STRIPE_WEBHOOK_SECRET=
cd coursemagnet
npm run dev
Open your browser and navigate to http://localhost:3000 to view the application.
This project is deployed using Vercel.
- Click the "Deploy with Vercel" button above.
- Follow the instructions to deploy your project.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- If you have suggestions for adding or removing something, feel free to open an issue to discuss it, or directly create a pull request with the necessary changes.
- Create individual PR for each suggestion.
- Fork the Project
- 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