SkillBridge is a full-stack platform that connects Tier-2 and Tier-3 college students with real work opportunities from local MSMEs. It uses verified skills, TrustScore, tasks, gigs, networking, and payments to promote merit-based hiring. ๐๐ค๐ข
https://skillbridge.debarghya.org ๐
Many talented students from Tier-2 and Tier-3 colleges struggle to access real work opportunities because hiring often depends on college reputation, networks, or location instead of actual skills. SkillBridge was built to reduce that gap by helping students prove what they can do through verified skills, TrustScore, practical tasks, and project-based gigs.
For local MSMEs, the platform creates a simple way to discover skilled student talent, assign meaningful work, review submissions, manage projects, and handle payments in one connected workflow.
- GIG Center to discover opportunities, manage applied gigs, track active work, view completed gigs, and save interesting roles
- Direct company invites with accept, decline, and interview-task flows
- Practical task submission system with project links, notes, and company review visibility
- TrustScore dashboard that reflects skill verification, project work, consistency, and task behavior
- Skill Hub for verified skills, skill upgrades, daily retention tasks, and skill-gap reports
- Profile and portfolio builder with skills, projects, GitHub links, contact details, and intro video support
- Peer networking through student discovery, saved connections, and team-up collaboration requests
- Earnings dashboard with payment history and withdrawal flow
- Business profile setup with hiring categories, work modes, location, and company details
- GIG Management for creating gigs, editing roles, tracking posted gigs, and reviewing applicants
- Talent Search with TrustScore, skill, location, and experience-level filters
- Student profile previews with verified skills, TrustScore, projects, contact details, and intro video
- Interview-task review workflow with statuses like reviewed, ready to hire, and needs revision
- Project Workspace for active project tracking, team members, task progress, and delivery status
- Payment Center with company wallet, escrow tracking, payment methods, and payout history
- Persistent dashboard state for gigs, workspace, payments, and business profile data
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Presentation Layer โ
โ โ
โ React + Vite Client โ
โ - Landing Page โ
โ - Student Dashboard โ
โ - Company Dashboard โ
โ - GIG, Skill Hub, Network, Workspace, Payment UI โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ HTTP / JSON API
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Application Layer โ
โ โ
โ Node.js Backend โ
โ - Native HTTP Server โ
โ - API Routing โ
โ - Controllers โ
โ - Auth Sessions โ
โ - Rate Limiting โ
โ - Business Logic โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ Mongoose ODM
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Data Layer โ
โ โ
โ MongoDB Database โ
โ - Students โ
โ - Companies โ
โ - Task Submissions โ
โ - Dashboard State โ
โ - Sessions โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
flowchart TD
A[User opens SkillBridge] --> B{Choose user type}
B --> C[Student Experience]
B --> D[Company Experience]
C --> C1[Build profile and portfolio]
C1 --> C2[Verify skills in Skill Hub]
C2 --> C3[Improve TrustScore]
C3 --> C4[Browse gigs and receive company invites]
C4 --> C5[Complete interview tasks]
C5 --> C6[Track active gigs and earnings]
C6 --> API[Backend API]
D --> D1[Set up business profile]
D1 --> D2[Create and manage gigs]
D2 --> D3[Search talent using skills and TrustScore]
D3 --> D4[Review student profiles and task submissions]
D4 --> D5[Manage workspace and payments]
D5 --> API
API --> E[Controllers and Business Logic]
E --> F[Session Auth and Rate Limiting]
F --> G[(MongoDB Database)]
G --> H[Students]
G --> I[Companies]
G --> J[Task Submissions]
G --> K[Dashboard State]
skillbridge/
โโโ .agents/
โโโ .claude/
โ โโโ settings.local.json
โโโ .codex/
โโโ .github/
โ โโโ workflows/
โ โโโ ci.yml
โโโ .qodo/
โ โโโ agents/
โ โโโ workflows/
โโโ .vscode/
โ โโโ settings.json
โโโ client/
โ โโโ public/
โ โ โโโ favicon.svg
โ โ โโโ icons.svg
โ โ โโโ logo.png
โ โโโ src/
โ โ โโโ assets/
โ โ โโโ company/
โ โ โโโ config/
โ โ โโโ landingpage/
โ โ โโโ lib/
โ โ โโโ student/
โ โ โ โโโ earning/
โ โ โ โโโ gig/
โ โ โ โโโ network/
โ โ โ โโโ profile/
โ โ โ โโโ skillhub/
โ โ โ โโโ task/
โ โ โโโ ui/
โ โ โโโ App.jsx
โ โ โโโ index.css
โ โ โโโ main.jsx
โ โโโ eslint.config.js
โ โโโ index.html
โ โโโ package-lock.json
โ โโโ package.json
โ โโโ vite.config.js
โโโ docs/
โ โโโ screenshots/
โโโ scripts/
โโโ server/
โ โโโ config/
โ โโโ controllers/
โ โโโ models/
โ โโโ tests/
โ โโโ utils/
โ โโโ .env.example
โ โโโ package-lock.json
โ โโโ package.json
โ โโโ server.js
โโโ .gitignore
โโโ render.yaml
โโโ README.md
SkillBridge uses MongoDB with Mongoose. The backend currently has three main collections: students, companies, and tasksubmissions.
| Module | Collections | Stored Data |
|---|---|---|
| Student Profile | students |
Student identity, contact details, location, preferred language, portfolio links, projects, intro video, skills, and TrustScore. |
| Student GIGs | students |
GIG opportunities, browsed gigs, saved gig IDs, applied gig IDs, active gigs, completed gigs, and invite status. |
| Skill Hub | students |
Verified skills, skill levels, categories, renewal status, trust gain/loss values, streaks, and missed days. |
| Network | students |
Peer discovery state, saved connections, team-up requests, accepted requests, and network activity. |
| Earnings | students |
Wallet stats, payment history, UPI accounts, selected withdrawal method, and withdrawal amount. |
| Company Profile | companies |
Business identity, contact details, GSTIN/business document data, location, hiring categories, work modes, and business profile setup. |
| Company GIG Management | companies |
Posted gigs, applicant pipeline, review stages, recent activity, and task-review state. |
| Company Workspace | companies |
Active projects, project status, workspace tasks, team members, deadlines, and delivery progress. |
| Company Payments | companies |
Company wallet, escrow tracking, payment methods, payout history, and payment dashboard state. |
| Task Review | tasksubmissions |
Student task submissions, project links, notes, matched skills, company review status, feedback, and submission timestamps. |
| Sessions & Usage | students, companies |
Session tokens, session creation time, daily section usage, and request-limit related account activity. |
erDiagram
STUDENT ||--o{ TASK_SUBMISSION : submits
STUDENT {
ObjectId _id
string name
string email
string phone
string passwordHash
string preferredLanguage
string location
string contactMethod
string verificationMethod
number trustScore
array skills
array githubLink
array contactInfo
array projects
string videoUrl
array skillHubSkills
object gigState
object networkState
object earningState
object dailySectionUsage
array sessions
date createdAt
date updatedAt
}
COMPANY {
ObjectId _id
string businessName
string email
string phone
string passwordHash
string contactMethod
string verificationMethod
string gstin
string businessDoc
string location
object businessProfile
object dashboardState
object gigManagementState
object projectWorkspaceState
object paymentState
object dailySectionUsage
array sessions
date createdAt
date updatedAt
}
TASK_SUBMISSION {
ObjectId _id
ObjectId studentId
string studentName
string studentLocation
number studentTrustScore
array studentSkills
object studentSkillsByLevel
string studentGithub
number opportunityId
string gigTitle
string companyName
string companyLocation
array matchedSkills
string submissionLink
string note
string status
string feedback
date submittedAt
date reviewedAt
date createdAt
date updatedAt
}
Key relationships:
TaskSubmission.studentIdreferences aStudent.- Student and company sessions are stored inside their respective documents.
- Student dashboard sections such as gigs, skills, network, and earnings are persisted as nested state.
- Company dashboard sections such as gig management, workspace, and payments are persisted as nested state.
Screenshots from the main SkillBridge user flows.
| Page / Flow | Preview |
|---|---|
| Landing Page | ![]() |
| Student Dashboard / GIG Center | ![]() |
| Skill Hub | ![]() |
| Student Network | ![]() |
| Company Dashboard | ![]() |
| GIG Management | ![]() |
| Talent Search | ![]() |
| Project Workspace | ![]() |
| Payment Center | ![]() |
| Layer | Technologies |
|---|---|
| Frontend | React, React Router DOM, Vite, CSS |
| Backend | Node.js, Native HTTP Server |
| Database | MongoDB, Mongoose |
| Authentication | Custom session tokens, password hashing with Node.js crypto |
| API Format | REST-style JSON APIs |
| Testing | Node.js Test Runner, ESLint |
| Deployment | Render backend configuration |
| CI/CD | GitHub Actions |
Clone the repository:
git clone https://github.com/debarghya131/Skill-Bridge.git
cd Skill-BridgeInstall and run the backend:
cd server
npm install
npm run devInstall and run the frontend in a new terminal:
cd client
npm install
npm run devThe frontend runs on:
http://localhost:5173
The backend runs on:
http://localhost:5000
Create a .env file inside the server/ folder:
cd server
cp .env.example .envServer environment variables:
| Variable | Description |
|---|---|
NODE_ENV |
Application environment, such as development or production |
MONGO_URL |
MongoDB connection string |
PORT |
Backend server port |
CORS_ORIGIN |
Allowed frontend origin |
SESSION_TTL_DAYS |
Number of days before a session expires |
MAX_SESSIONS_PER_ACCOUNT |
Maximum active sessions allowed per account |
RATE_LIMIT_WINDOW_MS |
Rate-limit time window in milliseconds |
RATE_LIMIT_MAX_REQUESTS |
Maximum general requests allowed per window |
AUTH_RATE_LIMIT_MAX_REQUESTS |
Maximum auth requests allowed per window |
DAILY_USER_RATE_LIMIT_MAX_REQUESTS |
Maximum authenticated requests allowed per user per day |
DAILY_SECTION_OPERATION_LIMIT |
Maximum write operations per section per day |
LOG_LEVEL |
Server logging level |
Example:
NODE_ENV=development
MONGO_URL=your_mongodb_connection_string
PORT=5000
CORS_ORIGIN=http://localhost:5173
SESSION_TTL_DAYS=30
MAX_SESSIONS_PER_ACCOUNT=5
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=120
AUTH_RATE_LIMIT_MAX_REQUESTS=12
DAILY_USER_RATE_LIMIT_MAX_REQUESTS=2000
DAILY_SECTION_OPERATION_LIMIT=2
LOG_LEVEL=infoFrontend environment variable:
| Variable | Description |
|---|---|
VITE_API_URL |
Backend API URL used by the React client |
Example client/.env:
VITE_API_URL=http://localhost:5000- Designing a two-sided platform that serves both students and companies without making the user flow confusing.
- Managing many dashboard sections such as GIGs, Skill Hub, Network, Earnings, Talent Search, Workspace, and Payments.
- Persisting complex dashboard state while still keeping default demo data available for new users.
- Building a merit-based hiring flow where TrustScore, verified skills, tasks, and project submissions work together.
- Handling authentication, session expiry, request limits, and protected routes without using a heavy backend framework.
- Keeping the frontend responsive and organized across multiple student and company workflows.
- Preparing the project for deployment with proper environment variables, health checks, and CI checks.
- Split the product into clear student and company dashboards with separate navigation and focused workflows.
- Created reusable API helpers and dashboard state handlers to keep frontend-backend communication consistent.
- Used MongoDB with Mongoose models for students, companies, sessions, dashboard state, and task submissions.
- Added template-state merge and reduce utilities so default data can be reused without storing unnecessary duplicate state.
- Implemented custom session-token authentication with password hashing, session cleanup, and logout support.
- Added rate limiting, daily user limits, daily section operation limits, CORS handling, and security headers.
- Built task submission and review flows so companies can evaluate students through practical work instead of only profile data.
- Added GitHub Actions for backend checks/tests and frontend builds, plus Render configuration for backend deployment.
- Add real-time chat between students and companies for project discussions.
- Add email or SMS notifications for invites, task reviews, payments, and hiring updates.
- Improve TrustScore with more detailed scoring rules, company ratings, and verified project outcomes.
- Add advanced search and recommendation logic for better student-gig matching.
- Move authentication to secure HTTP-only cookies for stronger session protection.
- Add file upload support for resumes, certificates, business documents, and task attachments.
- Add admin moderation for users, companies, reported profiles, and suspicious task activity.
- Add more automated tests for API routes, dashboard workflows, and frontend components.
- Optimize frontend bundle size with route-based code splitting.
- Add analytics dashboards for platform growth, hiring conversion, and student success metrics.
- Learned how to design a full-stack, two-sided marketplace with separate student and company journeys.
- Learned how to structure a React app with multiple dashboards, nested feature modules, and reusable API helpers.
- Learned how to persist complex user-specific dashboard state in MongoDB.
- Learned how to implement custom session-based authentication with password hashing and token expiry.
- Learned how to add backend safety features such as rate limiting, CORS, security headers, and health checks.
- Learned how to connect practical task submissions with a company review pipeline.
- Learned how to prepare a project for deployment using environment variables, CI checks, and Render configuration.
Debarghya Bandyopadhyay
- Computer Science engineering student and developer from Kolkata
I always like to make new friends. Follow me on:








