- π€ Introduction
- βοΈ Tech Stack
- π Features
- β‘ API Design
- π€ How to Contribute
Zenith Academy is a fully functional ed-tech platform enabling users to create, consume, and rate educational content. Built with the MERN stack, it provides:
- A seamless and interactive learning experience for students.
- A platform for instructors to showcase expertise and connect globally.
Explore the platform: Zenith Academy Live
Zenith Academy offers a comprehensive set of features for students and instructors to deliver an engaging online education experience.
- Homepage β Overview of the platform with featured courses and quick navigation.
- Course List β Browse all available courses with detailed descriptions, ratings, and instructor information.
- Wishlist β Add courses to your wishlist for future enrolment.
- Cart & Checkout β Secure cart management and payment processing with Razorpay integration.
- Course Content β Access enrolled course content, including videos, notes, and interactive materials.
- Progress Tracking β Monitor lesson completion, quiz scores, and overall course progress.
- User Profile β View and edit personal account details and enrolment history.
- Instructor Dashboard β Overview of created courses with ratings, enrolment statistics, and income tracking.
- Course Management β Create, update, and delete courses with multimedia content uploads via Cloudinary.
- Insights β View detailed analytics on course views, clicks, enrolments, and earnings.
- Profile Management β Edit personal and professional instructor details to maintain credibility.
- Secure Authentication β JWT-based login and registration with Bcrypt password hashing and role-based access.
- Payment Integration β Razorpay gateway for seamless and secure course purchases.
- Responsive Design β Mobile-first, accessible UI built with Tailwind CSS and Framer Motion animations for smooth interactions.
- Dynamic Search & Filtering β Efficient course search and category-based filtering for enhanced user experience.
- RESTful APIs β Structured APIs built with Express.js and Node.js for scalable backend operations.
- Cloud-based Media Management β Cloudinary integration for storing and serving course images and videos efficiently.
- Monorepo Architecture β Managed with Turborepo for optimized build performance and maintainability.
Zenith Academy is designed for scalability, security, and an intuitive learning experience to empower students and instructors worldwide.
graph TD
subgraph User Side
User[User Browser]
end
subgraph Frontend
FE[Next.js App]
end
subgraph Backend
BE[Node.js + Express.js Server]
end
subgraph Database
DB[MongoDB with Mongoose ODM]
end
subgraph External Services
Razorpay[Razorpay Payments]
Cloudinary[Cloudinary Media Storage]
end
User --> FE
FE --> BE
BE --> DB
BE --> Cloudinary
FE --> Razorpay
Zenith Academy follows a RESTful API architecture using Node.js and Express.js, structured under /api/v1/ with modular route grouping for scalability and clarity.
/api/v1/authβ Authentication-related routes/api/v1/profileβ User profile management/api/v1/paymentβ Payment processing routes/api/v1/courseβ Course and category management routes/api/v1/contactβ Contact form submissions
| Method | Endpoint | Description |
|---|---|---|
| POST | /login |
Authenticate user and return JWT token. |
| POST | /signup |
Register a new user (student/instructor). |
| POST | /sendotp |
Send OTP to userβs email for verification or reset. |
| POST | /changepassword |
Change user password (requires auth). |
| POST | /reset-password-token |
Generate password reset token. |
| POST | /reset-password |
Reset password using valid token. |
| Method | Endpoint | Description |
|---|---|---|
| DELETE | /deleteProfile |
Delete user account (requires auth). |
| PUT | /updateProfile |
Update user profile details (requires auth). |
| GET | /getUserDetails |
Fetch logged-in userβs details. |
| GET | /getEnrolledCourses |
Get all courses enrolled by user. |
| PUT | /updateDisplayPicture |
Update userβs display picture. |
| GET | /getInstructorDashboardDetails |
Instructor-only dashboard analytics. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /capturePayment |
Capture initiated payment (student only). |
| POST | /verifyPayment |
Verify payment signature. |
| POST | /sendPaymentSuccessEmail |
Send payment success email to user. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /createCourse |
Create new course (instructor only). |
| POST | /addSection |
Add section to course (instructor only). |
| POST | /updateSection |
Update section details (instructor only). |
| POST | /deleteSection |
Delete section (instructor only). |
| POST | /addSubSection |
Add subsection to section (instructor only). |
| POST | /updateSubSection |
Update subsection details (instructor only). |
| POST | /deleteSubSection |
Delete subsection (instructor only). |
| GET | /getAllCourses |
Retrieve all courses. |
| POST | /getCourseDetails |
Get specific course details. |
| POST | /getFullCourseDetails |
Get full course content (auth required). |
| POST | /editCourse |
Edit course details (instructor only). |
| DELETE | /deleteCourse |
Delete course (instructor only). |
| GET | /getInstructorCourses |
Get all courses created by instructor. |
| POST | /searchCourse |
Search courses by keyword. |
| POST | /updateCourseProgress |
Mark lecture as completed (student only). |
| Method | Endpoint | Description |
|---|---|---|
| POST | /createCategory |
Create a new course category. |
| GET | /showAllCategories |
Fetch all categories. |
| POST | /getCategoryPageDetails |
Get category-specific course details. |
| POST | /addCourseToCategory |
Assign course to category (instructor only). |
| Method | Endpoint | Description |
|---|---|---|
| POST | /createRating |
Submit course rating and review (student only). |
| GET | /getAverageRating |
Get average rating for a course. |
| GET | /getReviews |
Get all reviews for a course. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /contactUs |
Submit contact form (name, email, message). |
This robust API design ensures scalable, secure, and maintainable backend services powering Zenith Academyβs online education ecosystem.
We welcome contributions from the community to improve Zenith Academy. Follow these steps to get started:
Ensure you have the following installed:
- Click the
Forkbutton at the top right of this page to create your own copy.
git clone https://github.com/your-username/Zenith-Academy.git
cd Zenith-Academypnpm installgit checkout -b feature/YourFeatureName- Ensure your code follows the projectβs coding standards and includes relevant tests if applicable.
git add .
git commit -m "Add YourFeatureName"git push origin feature/YourFeatureNameGo to your forked repository on GitHub and click Compare & pull request. Add a clear description of your changes.
- β Keep PRs focused and atomic
- β Write clear commit messages
- β Follow existing code style and structure
- β Test thoroughly before submitting
This project follows a Contributor Code of Conduct. By participating, you agree to uphold these standards.
Thank you for contributing to Zenith Academy! π
Built by TrαΊ§n Minh LΓ΄i