SkillHub is an educational platform designed to offer a wide range of courses to learners. It facilitates browsing, enrollment, and access to courses through a user-friendly web/mobile interface. This README provides an overview of the project, including its architecture, functionalities, and setup instructions.
- Introduction
- Features
- Technologies Used
- Project Structure
- Setup Instructions
- API Documentation
- Contributing
- License
SkillHub is built as a microservices project using the MERN (MongoDB, Express.js, React.js, Node.js) stack along with Boostrap and antd for front-end design, and Firebase for file handling. It employs a distributed systems architecture with separate backend servers for Admin, Instructor, and Learner functionalities. Authentication is handled using JSON Web Tokens (JWT) with bcrypt encryption.
-
Web/Mobile Interface: A user-friendly interface allows learners to browse, enroll in, and access courses seamlessly across various devices.
-
Course Management Service: Instructors can add, update, and delete course information, manage course content (lecture notes, videos, quizzes), and monitor learner progress. Admins approve course content, integrate payment gateways, and handle financial transactions related to course enrollments.
-
Learner Service: Learners can enroll in courses, track their progress, and cancel course enrollment if needed.
-
Multiple Course Enrollment: Learners can enroll in multiple courses simultaneously without scheduling conflicts.
-
Payment Integration: Integration of payment gateways facilitates course enrollment payments. External third-party services such as Payhere are utilized in a sandbox environment for secure transactions.
- Frontend: React.js, Bootstrap, antd
- Backend: Node.js, Express.js
- Database: MongoDB
- File Handling: Firebase
- Authentication: JSON Web Tokens (JWT), bcrypt
SkillHub/
│
├── gateway/ # API Gateway
├── admin-backend/ # Admin Backend Server
├── instructor-backend/ # Instructor Backend Server
├── learner-backend/ # Learner Backend Server
└── frontend/ # React.js Frontend
-
Clone the repository:
git clone https://github.com/your-username/SkillHub.git cd SkillHub
-
Install dependencies for each service (gateway, backend servers, frontend):
cd gateway npm install cd ../admin-backend npm install # Repeat for instructor-backend, learner-backend, and frontend
-
Configure environment variables:
- Create
.env
files in each backend directory based on.env.example
files. - Set up MongoDB URI, Firebase credentials, JWT secret, etc.
- Create
-
Start each service (gateway, backend servers, frontend):
cd gateway npm start # Repeat for backend servers and frontend
-
Access the application at
http://localhost:3000
in your browser.
Detailed API documentation is available in the respective backend directories (admin-backend
, instructor-backend
, learner-backend
). Refer to the README files within those directories for API documentation.
Contributions are welcome! Please feel free to open issues or submit pull requests for any improvements or bug fixes.
This project is licensed under the MIT License - see the LICENSE file for details.