Skip to content

🧠 Skill Harbor – Freelance Course Enrollment Platform (Full Stack) A full-featured web application for managing and enrolling in skill-based courses. Built with Node.js, Express, Firebase Admin, and MongoDB on the backend. Supports secure JWT/Firebase token auth, role-based access, real-time seat management, and enrollment tracking.

Notifications You must be signed in to change notification settings

mahfuzarrahmanmunna/skill-harbor-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‘ Skill Harbor Server

This is the server-side codebase for Skill Harbor, a full-stack course management platform where users can create, manage, and enroll in professional and skill-development courses.


🌐 Live Server Deployment


πŸ“˜ Project Description

Skill Harbor Server provides RESTful API endpoints to handle:

  • Secure authentication via Firebase Admin
  • Token verification for protected routes
  • Course creation, editing, deletion
  • Course enrollment with seat management
  • Enrolled course tracking
  • Filtering features like top enrolled & long duration

✨ Features

  • πŸ” Secure Firebase Admin Auth with role verification
  • πŸ“¦ MongoDB Integration for course/enrollment data
  • πŸ‘¨β€πŸ« Instructor Controls – create/update/delete courses
  • πŸ‘¨β€πŸŽ“ User Enrollment – enroll/unenroll with seat management
  • πŸ“Š Analytics Endpoints – most enrolled, longest duration
  • βœ… Input Validation & Error Handling
  • 🌍 CORS Enabled with production/frontend whitelisting

πŸ” API Endpoints

Method Endpoint Description
GET / Server health check
GET /courses Get all courses
GET /latest-course Get latest 6 courses
GET /highest-enrolled-courses Get top 6 most enrolled courses
GET /long-duration-courses Get top 6 longest duration courses
GET /single-course/:id Get course by ID
GET /course Get courses by instructor email (protected)
POST /courses Create new course (protected)
PUT /course/:id Update course by ID (protected)
DELETE /single-course/:id Delete course by ID (protected)

Enrollment Endpoints

Method Endpoint Description
POST /course-order/:id Enroll or Unenroll user in course (protected)
GET /course-order/:id Get enrollment by course ID
GET /my-enrolled-course Get all enrolled courses by email (protected)
DELETE /course-order/:id Remove enrollment by ID (protected)

πŸ” Protected endpoints require Firebase ID token in Authorization header.


βš™οΈ Tech Stack

  • Runtime: Node.js
  • Framework: Express.js
  • Database: MongoDB (with MongoDB Atlas)
  • Auth: Firebase Admin SDK
  • Security: Cookie Parser, CORS, Environment Variables
  • Deployment: Vercel

πŸš€ Guidelines for running on a local machine

Client setup

git clone https://github.com/mahfuzarrahmanmunna/skill-harbor-server.git
cd skill-harbor-server
npm install
npm run dev

---

About

🧠 Skill Harbor – Freelance Course Enrollment Platform (Full Stack) A full-featured web application for managing and enrolling in skill-based courses. Built with Node.js, Express, Firebase Admin, and MongoDB on the backend. Supports secure JWT/Firebase token auth, role-based access, real-time seat management, and enrollment tracking.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published