SkillForge is a collaborative project management platform that connects students with projects through AI-powered skill matching. The platform features real-time communication, task management, and intelligent project-student pairing capabilities.
- AI-Powered Matching: Intelligent skill-based matching between students and projects using sentence transformers
- Real-time Communication: WebSocket-based chat, task updates, and notifications
- Project Management: Kanban-style task boards with live collaboration
- User Management: Student and project owner profiles with skill tracking
- Project Chat: Group messaging within project teams
- Live Task Updates: Real-time Kanban board synchronization
- Instant Notifications: User-specific event alerts
- WebSocket Architecture: Room-based connection management for scalable real-time updates
- Framework: Go with MongoDB for data persistence
- Real-time: WebSocket connections with room-based architecture
- AI Integration: Sentence transformer model for skill matching
- Database: MongoDB with collections for projects, users, messages, tasks, and notifications
- Framework: SvelteKit with TypeScript
- Real-time: WebSocket client integration
- UI: Tailwind CSS for responsive design
- Charts: Chart.js for data visualization
- Model: all-MiniLM-L6-v2 sentence transformer for semantic similarity
- Purpose: Maps user skills and project requirements to 384-dimensional vectors for matching
- Training: Fine-tuned on 1B+ sentence pairs for optimal semantic understanding
Backend:
- Go
- MongoDB
- WebSocket (gorilla/websocket)
- Sentence Transformers (Python AI service)
Frontend:
- SvelteKit
- TypeScript
- Tailwind CSS
- Chart.js
- WebSocket client
AI/ML:
- Python
- Sentence Transformers
- HuggingFace Transformers
SkillForge/
├── backend/ # Go backend service
│ ├── internal/
│ │ ├── handlers/ # HTTP and WebSocket handlers
│ │ ├── services/ # Business logic layer
│ │ ├── repositories/ # Data access layer
│ │ ├── models/ # Data models
│ │ └── integrations/ # External service integrations
│ └── storage/ # File storage (avatars, etc.)
├── frontend/ # SvelteKit frontend
├── ai/ # AI matching system
│ └── matching/
│ └── matching-model/ # Sentence transformer model
└── docs/ # Documentation
- Go 1.19+
- Node.js 18+
- MongoDB
- Python 3.8+ (for AI matching)
docker-compose upcd backend
go mod download
go run main.gocd frontend
npm install
npm run devcd ai/matching
pip install -r requirements.txt
python app.pyThe platform uses a sophisticated WebSocket architecture with three main communication channels:
- Chat Messages: Project-based group conversations using room format
"message{projectID}" - Task Updates: Live Kanban board synchronization using room format
"{projectID}" - Notifications: User-specific alerts using room format
"notification"
Each WebSocket connection is managed through a centralized RealtimeClient that handles connection lifecycle, room management, and message broadcasting.
The matching system uses semantic similarity to pair students with relevant projects:
- Feature Extraction: User skills and project requirements are converted to text embeddings
- Similarity Calculation: Cosine similarity between user and project vectors
- Score Generation: Rounded similarity scores for ranking matches
Key Collections:
users: Student and project owner profilesprojects: Project details and requirementsmessages: Chat communicationstasks: Kanban board itemsnotifications: User alertsproject_student: Project membership relationships
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull reques>
This project is licensed under the Apache 2.0 License.
The codebase demonstrates a modern full-stack architecture with real-time capabilities and AI integration. The backend follows clean architecture principles with clear separation between handlers, services, and repositories. The AI matching system leverages state-of-the-art sentence transformers for semantic understanding, while the real-time communication system provides scalable WebSocket management through room-based organization. The project structure supports both development and production deployment scenarios. For better understanding of the repo, follow this link https://deepwiki.com/iknizzz1807/SkillForge