AI-powered career development platform with real-time market insights, peer mock interviews, and personalized mentorship.
- GPT-4 powered conversational career advisor
- Personalized advice based on your profile and market data
- Session history and actionable insights
- Live salary trends and job demand analytics
- Interactive charts (Recharts)
- Skill demand heatmap with radar visualization
- 30-day historical data tracking
- Schedule interviews with matched peers
- WebRTC video calls via Socket.io
- Post-interview feedback and ratings
- Smart peer matching based on skills
- PDF upload and parsing
- AI-powered resume scoring
- Keyword analysis and optimization suggestions
- Format and content scoring
- Socket.io powered instant messaging
- Conversation history
- Typing indicators
- Mobile-responsive chat interface
- Advanced search and filtering
- Skill-based job matching
- Application tracking
- Recruiter profiles
flowchart TB
Client["π React 18 + TypeScript
SPA Β· WebSocket Β· Chart.js"]
subgraph BE["π’ Node.js / Express Backend"]
B1["π JWT Auth
+ Refresh Tokens"]
B2["π Socket.io
Real-time Events"]
B3["π REST API
CRUD Endpoints"]
end
subgraph ML["π AI / ML Layer"]
M1["FastAPI Microservice"]
M2["scikit-learn
Career Matching"]
M3["TF-IDF
Skill Extraction"]
end
subgraph DATA["ποΈ Data Layer"]
D1["π PostgreSQL 16
+ Prisma ORM"]
D2["β‘ Redis 7
Sessions Β· Cache"]
end
Client <-->|HTTPS / WSS| BE
BE --> ML
B1 <--> D2
B3 <--> D1
M1 --> M2 & M3
classDef client fill:#0d47a1,stroke:#42a5f5,color:#e3f2fd
classDef be fill:#1b5e20,stroke:#66bb6a,color:#e8f5e9
classDef ml fill:#4a148c,stroke:#ba68c8,color:#f3e5f5
classDef data fill:#3e2723,stroke:#ff8a65,color:#fbe9e7
class Client client
class B1,B2,B3 be
class M1,M2,M3 ml
class D1,D2 data
Request Flow:
- React 18 SPA communicates via HTTPS (REST) and WSS (Socket.io) for real-time peer events
- JWT Auth middleware secures all routes; refresh tokens are stored in Redis
- REST API handles career profiles, mock interview sessions, and mentorship matching via PostgreSQL
- Socket.io pushes live interview events, peer join/leave, and AI analysis results to all participants
- FastAPI ML microservice exposes career-matching and skill-extraction endpoints consumed by Node.js
- scikit-learn powers recommendation engines; TF-IDF extracts skill vectors from job descriptions
- Redis caches session state and leaderboards for sub-millisecond reads during live sessions
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL 16 (or use Docker)
- Redis 7 (or use Docker)
# Clone the repository
git clone https://github.com/ravigithubcse/SkillSync-AI.git
cd SkillSync-AI
# Copy environment variables
cp backend/.env.example backend/.env
# Start all services
docker-compose up -d
# The app will be available at:
# Frontend: http://localhost:5173
# API: http://localhost:3001
# Database: localhost:5432cd backend
npm install
# Setup database
cp .env.example .env
# Edit .env with your database credentials
npx prisma migrate dev
npx prisma db seed
npm run devcd frontend
npm install
npm run devSkillSync-AI/
βββ backend/
β βββ src/
β β βββ routes/ # API routes
β β βββ middleware/ # Auth, validation, error handling
β β βββ utils/ # JWT, Redis, Socket, Logger
β β βββ server.ts # Entry point
β βββ prisma/
β β βββ schema.prisma # Database schema
β β βββ seed.ts # Demo data
β βββ Dockerfile
βββ frontend/
β βββ src/
β β βββ pages/ # React pages
β β βββ components/ # Reusable components
β β βββ hooks/ # Custom hooks & stores
β β βββ lib/ # API client, utils
β β βββ types/ # TypeScript types
β βββ Dockerfile
βββ nginx/
β βββ nginx.conf # Reverse proxy config
βββ docker-compose.yml
DATABASE_URL="postgresql://user:pass@localhost:5432/skillsync"
REDIS_URL="redis://localhost:6379"
JWT_SECRET="your-super-secret-key"
OPENAI_API_KEY="sk-your-openai-key" # Optional
FRONTEND_URL="http://localhost:5173"| Role | Password | |
|---|---|---|
| Job Seeker | demo@skillsync.ai | password123 |
| Recruiter | recruiter@techcorp.com | password123 |
- React 18 + TypeScript
- Vite (build tool)
- Tailwind CSS + custom design system
- Framer Motion (animations)
- TanStack Query (data fetching)
- Zustand (state management)
- Recharts (data visualization)
- Socket.io Client (real-time)
- React Dropzone (file uploads)
- Node.js + Express
- TypeScript
- Prisma ORM + PostgreSQL
- Socket.io (WebSockets)
- Redis (sessions/cache)
- JWT authentication
- OpenAI API integration
- Winston logging
- Helmet + CORS security
- Docker + Docker Compose
- Nginx reverse proxy
- GitHub Actions ready
The platform uses a comprehensive schema with:
- Users (Job Seekers & Recruiters)
- Skills with market demand tracking
- Job Postings with requirements
- Applications with match scoring
- Mentor Sessions with AI conversations
- Mock Interviews with peer matching
- Messages with real-time delivery
- Market Data with historical trends
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm run testPOST /api/auth/register- Register new userPOST /api/auth/login- LoginGET /api/auth/me- Get current user
GET /api/jobs- List jobs with filtersPOST /api/jobs/:id/apply- Apply to jobGET /api/jobs/applications/my- My applications
POST /api/mentor/chat- Chat with AI mentorGET /api/mentor/sessions- Chat history
GET /api/market/dashboard- Market overviewGET /api/market/demand-heatmap- Skill demand
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE for details.
- OpenAI for GPT-4 API
- The React & Node.js communities
- All contributors and testers
Built with β€οΈ for the tech community
"Your career is a marathon, not a sprint. Let AI be your training partner."