Skip to content

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ EntreSkill Hub – Skill-to-Startup Enablement Platform

Transform Your Skills Into a Thriving Business

License: MIT Node.js React MongoDB Express


🌟 Overview

EntreSkill Hub is a comprehensive skill-to-startup enablement platform designed to bridge the gap between skilled individuals and entrepreneurship. Many people possess valuable practical skills (tailoring, handicrafts, food preparation, digital skills, etc.) but lack structured guidance to convert those skills into sustainable micro-businesses.

What We Provide:

  • Business Idea Discovery based on your skills
  • Step-by-Step Roadmaps for launching businesses
  • Curated Learning Resources (videos, articles, checklists, guides)
  • Expert Mentorship through 1-on-1 sessions and Q&A
  • Progress Tracking with gamification elements

🎯 Mission

Empower aspiring entrepreneurs with the knowledge, tools, and mentorship needed to confidently start and grow micro-enterprises, fostering self-employment and economic independence.


πŸ”₯ Problem Statement

Challenges Faced by Aspiring Micro-Entrepreneurs:

  1. Lack of Awareness – Don't know which business opportunities align with their skills
  2. No Structured Roadmap – Confused about where to start and what steps to follow
  3. Limited Access to Training – Scattered learning resources across the internet
  4. Absence of Mentorship – No guidance from experienced entrepreneurs
  5. Operational Confusion – Unclear about legal, financial, and marketing aspects

Our Solution:

EntreSkill Hub provides a unified platform that consolidates:

  • Business idea recommendations
  • Structured roadmaps with actionable steps
  • Expert-curated learning content
  • Access to verified mentors
  • Progress tracking and accountability

✨ Key Features

πŸ§‘β€πŸ’Ό For Users (Aspiring Entrepreneurs)

Feature Description
🎯 Skill Assessment Complete onboarding to identify skills, interests, and goals
πŸ’‘ Business Discovery Explore 500+ business ideas with filters (category, investment, difficulty)
πŸ—ΊοΈ Step-by-Step Roadmaps Detailed roadmaps covering idea validation, legal steps, cost estimation, marketing
πŸ“š Learning Resources Access curated videos, articles, checklists, and guides
πŸ‘¨β€πŸ« Mentor Directory Find and connect with 200+ verified mentors
πŸ“… Session Booking Book Q&A sessions or video calls with mentors
πŸ“Š Progress Tracking Dashboard with stats, streak counter, and completion rates
πŸ”– Bookmarks Save favorite businesses and resources
πŸ”” Notifications Real-time updates on sessions, approvals, and milestones
πŸŒ™ Dark Mode Eye-friendly dark theme with persistent preference

πŸŽ“ For Mentors

Feature Description
✍️ Profile Creation Build professional mentor profile with expertise and credentials
πŸ“† Availability Management Set available slots for mentoring sessions
πŸ’¬ Q&A Sessions Conduct text-based Q&A sessions with mentees
πŸŽ₯ Video Sessions Host live video calls via integrated Jitsi Meet
πŸ“€ Resource Upload Upload training materials (pending admin approval)
πŸ“ˆ Dashboard Analytics Track mentees, sessions, and performance metrics
⭐ Reputation System Build credibility through ratings and reviews

πŸ›‘οΈ For Admins

Feature Description
πŸ‘₯ User Management View, activate, or deactivate user accounts
πŸŽ“ Mentor Verification Approve/reject mentor applications with reasons
πŸ“ Content Moderation Review and approve mentor-uploaded resources
πŸ’Ό Business Management Curate and manage business ideas catalog
πŸ“Š Analytics Dashboard Monitor platform engagement, users, sessions, and growth
πŸ” Secure Admin Portal Separate admin authentication and authorization

πŸ› οΈ Tech Stack

Frontend

Technology Version Purpose
React.js 18.x UI library for building interactive interfaces
Vite 5.x Fast build tool and dev server
React Router DOM 6.x Client-side routing
Tailwind CSS 3.x Utility-first CSS framework
Framer Motion 10.x Animation library
Axios 1.x HTTP client for API requests
React Hot Toast 2.x Toast notifications
Canvas Confetti 1.x Celebration animations
Lucide React Latest Icon library
React Markdown 8.x Markdown rendering

Backend

Technology Version Purpose
Node.js 18.x JavaScript runtime
Express.js 4.x Web application framework
MongoDB 6.x NoSQL database
Mongoose 8.x MongoDB ODM
bcryptjs 2.x Password hashing
jsonwebtoken 9.x JWT authentication
dotenv 16.x Environment variable management
cors 2.x Cross-origin resource sharing
uuid 9.x Unique ID generation (for Jitsi rooms)

Additional Services

  • Jitsi Meet – Video conferencing integration
  • YouTube API – Video resource embedding
  • LocalStorage – Client-side data persistence

πŸ—οΈ Architecture

System Architecture Diagram

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     FRONTEND (React + Vite)                     β”‚
β”‚       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚       β”‚ User     β”‚ β”‚ Mentor   β”‚ β”‚ Admin    β”‚ β”‚ Common   β”‚       β”‚
β”‚       β”‚ Pages    β”‚ β”‚ Pages    β”‚ β”‚ Pages    β”‚ β”‚Componentsβ”‚       β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚             β”‚            β”‚            β”‚             β”‚           β”‚
β”‚             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚                                β”‚                                β”‚
β”‚                       API Service Layer                         β”‚
β”‚                                β”‚                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ 
                            HTTP/REST API
                                 β”‚
                                 β–Ό 
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   BACKEND (Node.js + Express)                   β”‚
β”‚       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚       β”‚ Auth     β”‚ β”‚Business  β”‚ β”‚ Mentor   β”‚ β”‚ Admin    β”‚       β”‚
β”‚       β”‚ Routes   β”‚ β”‚  Routes  β”‚ β”‚  Routes  β”‚ β”‚  Routes  β”‚       β”‚
β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚            β”‚            β”‚            β”‚            β”‚             β”‚
β”‚            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚
β”‚                                β”‚                                β”‚
β”‚                        Controllers Layer                        β”‚
β”‚                                β”‚                                β”‚
β”‚                        Models Layer (Mongoose)                  β”‚
β”‚                                β”‚                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                                 β–Ό 
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        MongoDB Database                         β”‚   
β”‚      β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”      β”‚
β”‚      β”‚Users β”‚ β”‚Busi- β”‚ β”‚Road- β”‚ β”‚Reso- β”‚ β”‚Book- β”‚ β”‚Noti- β”‚      β”‚
β”‚      β”‚      | | ness β”‚ β”‚ maps β”‚ β”‚urces β”‚ β”‚marks β”‚ β”‚fica- β”‚      β”‚
β”‚      β”‚      β”‚ β”‚      β”‚ β”‚      β”‚ β”‚      β”‚ β”‚      β”‚ β”‚tions β”‚      β”‚
β”‚      β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

Installation

1️⃣ Clone the Repository

git clone https://github.com/Prakhar007Pathak/EntreSkill-Hub.git
cd entreskill-hub

2️⃣ Install Backend Dependencies

cd backend
npm install

3️⃣ Install Frontend Dependencies

cd ../frontend
npm install

Environment Variables

Backend Configuration

Create backend/.env:

# Server Configuration
NODE_ENV=development
PORT=5000

# Database
MONGO_URI=mongodb://localhost:27017/entreskill

# JWT Secret (generate a random string)
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production

# Admin Credentials (for auto-creation)
ADMIN_NAME=EntreSkill Admin
ADMIN_EMAIL=admin@entreskill.com
ADMIN_PASSWORD=Admin@123456
ADMIN_PHONE=+919999999999

Frontend Configuration

Create frontend/.env:

# API Base URL
VITE_API_URL=http://localhost:5000/api

Database Setup

Option 1: Local MongoDB

  1. Start MongoDB Service:
# macOS (Homebrew)
brew services start mongodb-community

# Windows
net start MongoDB

# Linux (systemd)
sudo systemctl start mongod
  1. Verify Connection:
mongosh
# Should connect to mongodb://localhost:27017

Option 2: MongoDB Atlas (Cloud)

  1. Create free account at MongoDB Atlas
  2. Create a cluster
  3. Whitelist your IP address
  4. Create database user
  5. Get connection string and update MONGO_URI in .env

Running the Application

Development Mode

Terminal 1 - Backend:

cd backend
npm run dev

Backend runs on http://localhost:5000

Terminal 2 - Frontend:

cd frontend
npm run dev

Frontend runs on http://localhost:5173

πŸŽ‰ Access the Application

Role URL Credentials
Landing Page http://localhost:5173 -
User http://localhost:5173/register Create new account
Mentor http://localhost:5173/mentor/register Create new account
Admin http://localhost:5173/admin/login admin@entreskill.com / Admin@123456

πŸ‘₯ User Roles & Workflows

πŸ§‘β€πŸ’Ό User Journey

1. Register/Login β†’ 2. Complete Onboarding (4 steps) β†’ 
3. View Dashboard β†’ 4. Explore Businesses β†’ 
5. Start Roadmap β†’ 6. Access Learning Resources β†’ 
7. Connect with Mentors β†’ 8. Book Sessions β†’ 
9. Track Progress β†’ 10. Complete Milestones

πŸŽ“ Mentor Journey

1. Register as Mentor β†’ 2. Complete Mentor Onboarding (4 steps) β†’ 
3. Pending Verification β†’ 4. Admin Approves β†’ 
5. Mentor Dashboard β†’ 6. Set Availability β†’ 
7. Respond to Sessions β†’ 8. Conduct Mentoring β†’ 
9. Upload Resources β†’ 10. Build Reputation

πŸ›‘οΈ Admin Journey

1. Admin Login β†’ 2. View Dashboard Stats β†’ 
3. Manage Users β†’ 4. Verify Mentors β†’ 
5. Approve Resources β†’ 6. Curate Businesses β†’ 
7. Monitor Platform β†’ 8. Handle Reports

πŸ“‘ API Documentation

Base URL

http://localhost:5000/api

Authentication

All protected routes require JWT token in header:

Authorization: Bearer <token>

Main API Endpoints

πŸ” Authentication

  • POST /api/auth/register - Register new user/mentor
  • POST /api/auth/login - Login
  • GET /api/auth/me - Get current user

πŸ’Ό Businesses

  • GET /api/businesses - Get all businesses (with filters)
  • GET /api/businesses/:slug - Get business details
  • POST /api/businesses/:id/bookmark - Toggle bookmark

πŸ—ΊοΈ Roadmaps

  • GET /api/roadmaps/:businessSlug - Get roadmap
  • POST /api/roadmaps/:businessSlug/start - Start roadmap
  • PUT /api/roadmaps/step/:stepId/complete - Mark step complete

πŸ“š Resources

  • GET /api/resources - Get all resources
  • GET /api/resources/:slug - Get resource details
  • POST /api/resources/:id/complete - Mark complete

πŸŽ“ Mentors

  • GET /api/mentors - Get all mentors
  • GET /api/mentors/:mentorSlug - Get mentor profile
  • POST /api/mentors/:mentorId/connect - Connect with mentor
  • POST /api/mentors/slots/:slotId/book - Book session

πŸ›‘οΈ Admin

  • POST /api/admin/login - Admin login
  • GET /api/admin/stats - Dashboard stats
  • PUT /api/admin/mentors/:mentorId/approve - Approve mentor
  • PUT /api/admin/resources/:id/approve - Approve resource

πŸ“ Project Structure

entreSkill/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ package.json
β”‚   └── src/
β”‚       β”œβ”€β”€ config/
β”‚       β”‚   └── db.js
β”‚       β”œβ”€β”€ controllers/
β”‚       β”‚   β”œβ”€β”€ adminController.js
β”‚       β”‚   β”œβ”€β”€ authController.js
β”‚       β”‚   β”œβ”€β”€ businessController.js
β”‚       β”‚   β”œβ”€β”€ mentorController.js
β”‚       β”‚   └── ...
β”‚       β”œβ”€β”€ middleware/
β”‚       β”‚   └── auth.js
β”‚       β”œβ”€β”€ models/
β”‚       β”‚   β”œβ”€β”€ User.js
β”‚       β”‚   β”œβ”€β”€ Business.js
β”‚       β”‚   β”œβ”€β”€ Bookmark.js
β”‚       β”‚   └── ...
β”‚       β”œβ”€β”€ routes/
β”‚       β”‚   β”œβ”€β”€ authRoutes.js
β”‚       β”‚   β”œβ”€β”€ businessRoutes.js
β”‚       β”‚   └── ...
β”‚       β”œβ”€β”€ seeds/
β”‚       β”‚   β”œβ”€β”€ createAdmin.js
β”‚       β”‚   └── ...
β”‚       β”œβ”€β”€ utils/
β”‚       β”‚   β”œβ”€β”€ autoCreateAdmin.js
β”‚       β”‚   β”œβ”€β”€ jwt.js
β”‚       β”‚   └── slug.js
β”‚       └── server.js
β”‚
└── frontend/
    β”œβ”€β”€ .env
    β”œβ”€β”€ package.json
    β”œβ”€β”€ index.html
    β”œβ”€β”€ tailwind.config.js
    β”œβ”€β”€ vite.config.js
    └── src/
        β”œβ”€β”€ App.jsx
        β”œβ”€β”€ main.jsx
        β”œβ”€β”€ index.css
        β”œβ”€β”€ components/
        β”‚   β”œβ”€β”€ admin/
        β”‚   β”œβ”€β”€ business/
        β”‚   β”œβ”€β”€ common/
        β”‚   β”œβ”€β”€ dashboard/
        β”‚   └── mentor/
        β”œβ”€β”€ context/
        β”‚   └── AuthContext.jsx
        β”œβ”€β”€ pages/
        β”‚   β”œβ”€β”€ admin/
        β”‚   β”œβ”€β”€ Dashboard.jsx
        β”‚   β”œβ”€β”€ Login.jsx
        β”‚   β”œβ”€β”€ Register.jsx
        β”‚   └── ...
        └── services/
            β”œβ”€β”€ api.js
            β”œβ”€β”€ authService.js
            β”œβ”€β”€ businessService.js
            └── ...

πŸ—„οΈ Database Schema

Users Collection

{
  _id: ObjectId,
  fullName: String,
  email: String (unique),
  password: String (hashed),
  role: String (user | mentor | admin),
  phone: String,
  
  // User Onboarding
  onboardingData: {
    status: String,
    education: String,
    skills: [String],
    tools: [String],
    industry: [String],
    budget: Number
  },
  
  // Mentor Profile
  mentorProfile: {
    headline: String,
    bio: String,
    expertise: [String],
    sessionTypes: { qa: Boolean, videoCall: Boolean }
  },
  
  createdAt: Date,
  updatedAt: Date
}

Business Collection

{
  _id: ObjectId,
  title: String,
  slug: String (unique),
  description: String,
  category: String,
  difficulty: String,
  investmentRange: { min: Number, max: Number },
  requiredSkills: [String],
  pros: [String],
  cons: [String],
  featured: Boolean
}

Bookmark Collection

{
  _id: ObjectId,
  userId: ObjectId (ref: User),
  type: String (business | resource),
  businessId: ObjectId (ref: Business),
  resourceId: ObjectId (ref: Resource),
  createdAt: Date
}

🎯 Features Deep Dive

1️⃣ Business Discovery Algorithm

// Personalized recommendations based on:
- User skills match
- Industry preference match
- Budget constraints
- Sorted by viability score & success rate

2️⃣ Roadmap System

5-Stage Framework:

  1. Idea Validation
  2. Skills & Tools
  3. Legal & Registration
  4. Cost Estimation
  5. Marketing Basics

3️⃣ Mentor Matching

Filters:

  • Expertise area
  • Industry experience
  • Language
  • Session type
  • Availability

🌐 Live Deployment

The project is fully deployed and accessible online.

Service URL
Frontend (Vercel) https://entre-skill-hub.vercel.app/
Backend API (Render) https://entreskill-hub-f7u4.onrender.com

You can explore the platform through the frontend application.
The backend API is connected to MongoDB Atlas and handles authentication, bookings, services, and real-time updates.


πŸ“ˆ Future Enhancements

Planned improvements include:

AI-Powered Skill Matching AI Business Recommendation Engine Personalized Startup Roadmaps Multi-Language Support Mobile Application Government Scheme Integration Funding & Investor Support Advanced Analytics Dashboard AI Entrepreneurship Assistant

🎯 Expected Impact

EntreSkill Hub aims to:

Promote self-employment Encourage entrepreneurship Support rural and local businesses Improve startup success rates Provide accessible business education Build sustainable micro-enterprises

🀝 Acknowledgements

This project was developed as part of an internship under:

Unified Mentor Pvt. Ltd.

Special thanks to the mentors, reviewers, and contributors who provided guidance throughout the development process.


πŸ‘¨β€πŸ’» Developer

Prakhar Pathak

Full Stack Web Developer | AI & ML Student

Passionate about building scalable web applications, solving real-world problems, and creating impactful digital products.


⭐ If you found this project interesting, consider giving it a star and sharing your feedback.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages