CourseHaven is a fully functional online learning marketplace designed to provide users with a seamless experience for discovering, enrolling in, and managing courses. The platform caters to both students and admins/instructors, offering a wide range of features to enhance the learning and teaching experience. Built with modern web development technologies, CourseHaven demonstrates my expertise in full-stack development, including frontend, backend, database management, and third-party integrations.
-
Course Browsing and Enrollment:
- Browse courses by category, sort them, and search for specific courses.
- View detailed course information.
- Enroll in courses or add them to a cart for future purchase.
- Apply coupons during checkout for discounts.
-
User Dashboard:
- Track enrolled courses, completed lessons, and achieved certificates.
- Manage cart items and proceed to purchase.
- View payment history and update profile information.
-
Notifications:
- Receive email notifications upon course enrollment using Nodemailer.
-
Secure Payments:
- Integrated Stripe payment gateway for secure transactions.
-
Dashboard:
- View platform statistics, including total courses, students, and revenue data (with a 7-day revenue chart).
-
Course Management:
- Manage all courses with options to edit, delete, and search/filter and sorting courses.
- Add new courses to the platform.
-
User Management:
- Access and manage student and instructor data.
- Remove users from the platform if necessary.
-
Order Management:
- View all payment histories and order details.
- HTML, CSS, TailwindCSS: For responsive and modern UI design.
- JavaScript, React.js: For building dynamic and interactive user interfaces.
- React Router: For seamless client-side routing.
- TanStack Query (React Query): For efficient data fetching and state management.
- Axios: For API requests and interceptors.
- Node.js with Express: For building robust and scalable APIs.
- MongoDB Atlas: For database management and storage.
- JWT (JSON Web Tokens): For secure authentication and authorization.
- Nodemailer: For sending email notifications (e.g., course enrollment confirmation).
- Firebase: For user authentication (login/signup functionality).
- Role-Based Access Control (RBAC): To differentiate between admin, instructor, and student roles.
- Stripe: For secure payment processing.
-
Course Management:
- Admins/instructors can add, edit, and delete courses.
- Students can browse, filter, and search for courses based on categories, price, and ratings.
-
Enrollment System:
- Students can enroll in courses, and enrollment details are saved in the database.
- Email notifications are sent to students upon successful enrollment.
-
User Dashboard:
- Students can view their enrolled courses, track progress, and manage their profiles.
- Admins can monitor platform statistics and manage users and courses.
-
Payment System:
- Integrated with Stripe for secure and seamless payment processing.
- Students can apply coupons during checkout for discounts.
-
Secure Routes and API Endpoints:
- Implemented JWT-based authentication to secure routes and API endpoints.
- Role-based access control ensures that only authorized users can access specific features.
CourseHaven showcases my ability to:
- Develop a full-stack web application from scratch.
- Implement complex features like role-based access control, payment integration, and email notifications.
- Use modern technologies like React, Node.js, MongoDB, and TailwindCSS.
- Ensure a seamless user experience with responsive design and efficient state management.
- Demonstrate problem-solving skills by integrating third-party services like Firebase, Stripe, and Nodemailer.
- Clone the repository:
git clone https://github.com/devujjal/course-haven.git
- Install dependencies:
cd CourseHaven-Frontend npm install cd CourseHaven-Backend npm install
- Set up environment variables:
Create a .env file in the root directory and add the necessary keys (e.g., Firebase, Stripe, MongoDB Atlas, Nodemailer).
- Start the development server:
npm run dev
This project is a testament to my skills as a full-stack developer and my ability to deliver high-quality, user-centric web applications. Feel free to explore the code and provide feedback!