How quangpham10212004/do_an_2026 works
MentorHub is a microservices learning and mentor–mentee platform. A mentee enters through the Next.js app, authenticates, builds a profile, discovers ranked mentors, then can book mentoring, pay, and continue learning through courses and roadmaps. Mentors also complete AI interview verification; CV parsing and goal-enrichment help refine mentee profiles. The README documents service boundaries and the browser-to-API proxy; sampled source confirms selected service calls and AI fallbacks, but not every cross-service route, so uncertain links are omitted.
Main entry points: app Next.js app · route.js API proxy · PaymentService.java Payment service · SessionService.java Mentoring service
Components 30
User experience
- Next.js app
frontend/src/app - API proxy
frontend/src/app/api/[service]/[...path]/route.js - Auth client
frontend/src/features/auth/api.js - Profile client
frontend/src/features/profile/api.js - Matching client
frontend/src/features/matching/api.js - AI client
frontend/src/features/ai/api.js - Learning client
frontend/src/features/learning/api.js - Mentoring client
frontend/src/features/mentoring/api.js - Payment client
frontend/src/features/payment/api.js
Identity and profiles
- Auth service
auth-service/src/main/java/com/mmp/auth/controller/AuthController.java - Auth repositories
auth-service/src/main/java/com/mmp/auth/repository/UserRepository.java - Profile service
profile-service/src/main/java/com/mmp/profile/controller/ProfileController.java - Profile data
profile-service/src/main/java/com/mmp/profile/entity/MenteeProfile.java
AI discovery
- Embedding refresh
profile-service/src/main/java/com/mmp/profile/service/EmbeddingService.java - Matching pipeline
matching-service/app/services/matching_pipeline.py - Matching API
matching-service/app/routers/matching.py
Mentoring and payment
- Mentoring service
mentoring-service/src/main/java/com/mmp/mentoring/service/SessionService.java - Session data
mentoring-service/src/main/java/com/mmp/mentoring/entity/MentoringSession.java - Payment service
payment-service/src/main/java/com/mmp/payment/service/PaymentService.java - Transaction data
payment-service/src/main/java/com/mmp/payment/entity/Transaction.java - Sandbox gateway
payment-service/src/main/java/com/mmp/payment/gateway/SandboxPaymentGateway.java - Referral service
payment-service/src/main/java/com/mmp/payment/service/ReferralService.java
Learning and AI
- AI interview
ai-service/app/interview/engine.py - CV and enrichment
ai-service/app/cv/engine.py - CV file storage
ai-service/app/storage.py - Learning service
learning-service/src/main/java/com/mmp/learning/service/LearningService.java - Course progress data
learning-service/src/main/java/com/mmp/learning/entity/CourseProgress.java
Other components
- Browser user
- DeepSeek API
- PostgreSQL and pgvector
Connections 35
- Browser user → Next.js app: uses
- Next.js app → API proxy: requests API
- Next.js app → Auth client: calls
- Next.js app → Profile client: calls
- Next.js app → Matching client: calls
- Next.js app → AI client: calls
- Next.js app → Learning client: calls
- Next.js app → Mentoring client: calls
- Next.js app → Payment client: calls
- API proxy → Auth service: forwards requests
- API proxy → Profile service: forwards requests
- API proxy → Matching API: forwards requests
- API proxy → AI interview: forwards requests
- API proxy → CV and enrichment: forwards requests
- API proxy → Learning service: forwards requests
- API proxy → Mentoring service: forwards requests
- API proxy → Payment service: forwards requests
- Auth service → Auth repositories: reads and writes
- Auth service → Referral service: registers referral
- Profile service → Profile data: reads and writes
- Profile service → Embedding refresh: refreshes vector
- Embedding refresh → Matching pipeline: requests embedding
- Embedding refresh → Profile data: stores vector
- Matching API → Matching pipeline: runs ranking
- Matching pipeline → PostgreSQL and pgvector: retrieves profile vectors
- CV and enrichment → CV file storage: stores CV
- CV and enrichment → DeepSeek API: parses or enriches
- AI interview → DeepSeek API: interviews
- Learning service → Course progress data: reads and writes
- Mentoring service → Session data: reads and writes
- Mentoring service → Payment service: requests refund
- Payment service → Mentoring service: loads session
- Payment service → Transaction data: reads and writes
- Payment service → Sandbox gateway: charges or refunds
- Payment service → Referral service: uses referral rules