Skip to content

WavyWeb/SkillHub-CourseSelling

Repository files navigation

πŸ“š SkillHub – Course Selling Website

Deployment License
Built with MERN Stack

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.


πŸ“‘ Table of Contents


πŸ“Œ Introduction

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.


✨ Features

General

  • βœ… 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).

Frontend

  • πŸ“š 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.

Backend

  • πŸ‘€ 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.

πŸ› οΈ Technologies Used

Frontend

  • React.js – Dynamic user interfaces
  • Tailwind CSS – Responsive modern UI styling
  • Axios – API requests to backend
  • Recharts / Chart.js – Visualizing progress dashboard

Backend

  • 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

πŸš€ Getting Started

Follow these steps to set up and run SkillHub on your local machine.

Prerequisites

Ensure you have the following installed:

Installation

1. Clone the repository

git clone https://github.com/your-username/SkillHub-CourseSelling.git
cd SkillHub-CourseSelling

2. Install dependencies

# Backend dependencies
cd backend
npm install

# Frontend dependencies
cd ../frontend
npm install

3. Setup environment variables

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

4. Run the project

# Backend
cd backend
npm run dev

# Frontend
cd ../frontend
npm start


πŸ’‘ Usage

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


🀝 Contributing

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.


License

This project is licensed under the MIT License – see the LICENSE file for details.


⬆️ Back to Top

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 14