How rahulsahu009/projectmate-the-matchmaker-and-ai-mentor-for-great-projects works
ProjectMate helps developers discover projects, form teams, and collaborate through chat, video, AI guidance, and GitHub progress tracking. The main journey runs from profile and project discovery through join requests and team finalization, then into a collaboration workspace and project publication. The graph combines sampled service/controller behavior with major README capabilities; chat, Agora, and some frontend page wiring are represented at the documented subsystem level because their implementation was not sampled.
Main entry points: axios.js HTTP Client · ProjectService.java Project Lifecycle · UserRepository.java User Records · ProjectDetails.jsx Project Workspace UI
Components 28
Web Client
- React App & Routes
frontend/src/App.jsx - Auth Context
frontend/src/context/AuthContext.jsx - Discovery & Profiles
frontend/src/pages/Explore.jsx - Project Workspace UI
frontend/src/pages/ProjectDetails.jsx - HTTP Client
frontend/src/lib/axios.js
Project Matching
- Project API
backend/src/main/java/com/projectmate/controller/ProjectController.java - Project Lifecycle
backend/src/main/java/com/projectmate/service/ProjectService.java - Team Request API
backend/src/main/java/com/projectmate/controller/TeamRequestController.java - Team Formation
backend/src/main/java/com/projectmate/service/TeamRequestService.java - Project Records
backend/src/main/java/com/projectmate/repository/ProjectRepository.java - Team Requests
backend/src/main/java/com/projectmate/repository/TeamRequestRepository.java - MySQL
Team Collaboration
- Real-Time Chat
backend/src/main/java/com/projectmate/controller/TeamMessageController.java - WebSocket Broker
backend/src/main/java/com/projectmate/config/WebSocketConfig.java - Video & Screen Sharing
frontend/src/components/VideoRoom.jsx - Agora Token API
backend/src/main/java/com/projectmate/controller/AgoraController.java
Identity & Admin
- Authentication API
backend/src/main/java/com/projectmate/controller/AuthController.java - Authentication Service
backend/src/main/java/com/projectmate/service/AuthService.java - Reset Email
backend/src/main/java/com/projectmate/service/EmailService.java - User & Profile API
backend/src/main/java/com/projectmate/controller/UserController.java - Admin API
backend/src/main/java/com/projectmate/controller/AdminController.java - User Records
backend/src/main/java/com/projectmate/repository/UserRepository.java
External Services
- AI Mentor
backend/src/main/java/com/projectmate/service/GeminiService.java - Commit Sync
backend/src/main/java/com/projectmate/service/GithubService.java - Google Gemini
- GitHub API
- Agora RTC
Other components
- Developer
Connections 42
- Developer → React App & Routes: uses
- React App & Routes → Auth Context: provides auth
- React App & Routes → Discovery & Profiles: routes to
- React App & Routes → Project Workspace UI: routes to
- Discovery & Profiles → HTTP Client: requests data
- Project Workspace UI → HTTP Client: requests actions
- Auth Context → HTTP Client: requests auth
- HTTP Client → Authentication API: REST requests
- HTTP Client → User & Profile API: REST requests
- HTTP Client → Project API: REST requests
- HTTP Client → Team Request API: REST requests
- Authentication API → Authentication Service: delegates
- Authentication Service → User Records: reads/writes
- Authentication Service → Reset Email: sends reset email
- User & Profile API → User Records: reads
- User & Profile API → Project Records: reads
- User & Profile API → Team Requests: reads
- Project API → Project Lifecycle: delegates
- Project API → AI Mentor: enhances description
- Project Lifecycle → Project Records: reads/writes
- Project Lifecycle → User Records: reads
- Project Lifecycle → Team Requests: reads
- Project Lifecycle → AI Mentor: generates/analyzes
- Project Lifecycle → Commit Sync: syncs commits
- Team Request API → Team Formation: delegates
- Team Formation → User Records: reads
- Team Formation → Project Records: reads
- Team Formation → Team Requests: reads/writes
- Admin API → User Records: manages users
- Admin API → Project Records: manages projects
- Real-Time Chat → WebSocket Broker: publishes messages
- WebSocket Broker → Developer: broadcasts chat
- Project Workspace UI → Real-Time Chat: opens team chat
- Project Workspace UI → Video & Screen Sharing: opens video room
- Video & Screen Sharing → Agora RTC: joins RTC
- Project Workspace UI → Agora Token API: requests token
- Agora Token API → Agora RTC: issues credentials
- AI Mentor → Google Gemini: calls API
- Commit Sync → GitHub API: fetches commits
- Project Records → MySQL: persists
- Team Requests → MySQL: persists
- User Records → MySQL: persists