SkillHub is a comprehensive online platform for selling and buying courses, featuring robust backend management and an intuitive, responsive frontend. It provides a seamless e-learning experience for both instructors and students, accessible on any device.
- β¨ Features
- π οΈ Technologies Used
- π Getting Started
- π‘ Usage
- π€ Contributing
- π License
SkillHub is a modern full-stack web application designed to facilitate online learning. It empowers instructors to effortlessly list and manage their courses, while providing students with a rich catalog to discover and enroll in.
Key functionalities include:
- Secure user authentication (for both students and instructors)
- Comprehensive course browse and search capabilities with filters and sorting
- Detailed course pages with curriculum, instructor info, reviews, and ratings
- Secure payment processing for course enrollments
- Personalized dashboards for managing courses, tracking progress, and reviewing learning metrics
- Discussion forums for each course to enable student-instructor interaction
- Dark/Light theme toggle for improved accessibility
With a strong emphasis on user experience and a mobile-first approach, SkillHub ensures a delightful and efficient learning journey across all screen sizes.
- β Fully Responsive β Optimized for seamless use on phones, tablets, and desktops.
- π User Authentication β Secure signup, login, and logout for both students and instructors.
- π§βπ« Role-Based Access β Distinct functionalities for students (enrolling, learning) and instructors (creating, managing courses).
- π Course Catalog β Browse courses by category or search with real-time filtering and sorting.
- π Detailed Course View β Includes course description, syllabus, instructor info, reviews, and average ratings.
- π Shopping Cart & Checkout β Add courses, manage selections, and securely purchase through integrated payment gateway.
- π User Dashboards β Personalized dashboards for:
- Students: Enrolled courses, progress tracking, weekly improvement metrics
- Instructors: Course management, student engagement analytics
- π¬ Discussion Forum β Dedicated forum for each course to ask questions, reply, and engage with instructors.
- π Dark/Light Theme Toggle β Switch between light and dark modes; preference saved in localStorage.
- π€ User Management APIs β Registration, login, profile updates, and role-based access control.
- π Course Management APIs β CRUD operations for courses with categories and filters.
- π Enrollment & Progress APIs β Track lessons completed, quiz scores, and total time spent per user.
- π Reviews & Ratings APIs β Submit and moderate course reviews; only approved reviews are publicly displayed.
- πΎ Database Integration β MongoDB collections for users, courses, progress, reviews, and forum threads.
- π Security β JWT-based authentication, input validation, and protected routes.
- React.js β Dynamic user interfaces
- Tailwind CSS β Responsive modern UI styling
- Axios β API requests to backend
- Recharts / Chart.js β Visualizing progress dashboard
- Node.js β Server-side runtime
- Express.js β RESTful API framework
- MongoDB & Mongoose β Flexible data storage and modeling
- JSON Web Tokens (JWT) β Secure authentication and authorization
- Stripe API β Secure payment processing
- Socket.io (optional) β Real-time updates for discussion forums
Follow these steps to set up and run SkillHub on your local machine.
Ensure you have the following installed:
- Node.js & npm (or yarn):
- MongoDB Community Server:
git clone https://github.com/your-username/SkillHub-CourseSelling.git
cd SkillHub-CourseSelling
# Backend dependencies
cd backend
npm install
# Frontend dependencies
cd ../frontend
npm install
Create a .env file in the backend folder:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
STRIPE_SECRET_KEY=your_stripe_secret_key
# Backend
cd backend
npm run dev
# Frontend
cd ../frontend
npm start
Sign up as a student or instructor
Browse courses, apply filters, and search efficiently
Enroll in courses and track your learning progress
Submit and read reviews, or moderate if you are an admin/instructor
Participate in discussion forums for each course
Toggle between dark and light mode for better accessibility
Contributions are welcome! Please follow these steps:
Fork the repository
Create your feature branch (git checkout -b feature/your-feature)
Commit your changes (git commit -m 'feat: add your feature')
Push to the branch (git push origin feature/your-feature)
Open a Pull Request
Please ensure your code follows the project's coding style and is well-documented.
This project is licensed under the MIT License β see the LICENSE file for details.