How liyuan551408-bot/coursecamposs works
CourseCompass lets university students discover and evaluate courses, then save completed or prospective courses, build study plans, and request AI recommendations; moderators and administrators manage reviews and platform data. The frontend routes users through Vue views and stores into API modules and the Express API, whose domain services apply business rules and persist through Prisma/PostgreSQL. The README documents these product capabilities; some controller/service links and integrations are not excerpted, so uncertain connections are omitted or shown as unverified.
Main entry points: prisma.js Prisma client · routes API routes · aiController.js AI handlers · courseService.js Course catalog
Components 27
Student experience
- App shell
frontend/src/App.vue - Product pages
frontend/src/views - API modules
frontend/src/api - Client stores
frontend/src/stores
API and access
- Express API
backend/app.js - API routes
backend/src/routes - Token auth
backend/src/middlewares/authMiddleware.js - Role checks
backend/src/middlewares/roleMiddleware.js - Course handlers
backend/src/controllers/courseController.js - AI handlers
backend/src/controllers/aiController.js - Review handlers
backend/src/controllers/reviewController.js
Course planning
- Course catalog
backend/src/services/courseService.js - Planning services
backend/src/services/planService.js - Saved courses
backend/src/services/savedCourseService.js - Completed courses
backend/src/services/completedCourseService.js - Reviews and moderation
backend/src/services/reviewService.js
AI recommendations
- AI orchestration
backend/src/services/aiService.js - Semantic retrieval
backend/src/services/courseRetrievalService.js - Course embeddings
backend/src/services/courseEmbeddingService.js - Language model
backend/src/services/llmService.js
Identity and operations
- Identity services
backend/src/services/userService.js - Notifications
backend/src/services/notificationService.js - Prisma client
backend/src/lib/prisma.js - PostgreSQL
Other components
- Student
- SiliconFlow embeddings
- Zhipu AI
Connections 31
- Student → App shell: uses
README.md - App shell → Product pages: routes to
- Product pages → API modules: requests data
frontend/src/views/ReviewSubmit.vue - Product pages → Client stores: uses state
frontend/src/views/ReviewSubmit.vue - API modules → Express API: calls API
README.md - Express API → API routes: mounts
backend/app.js - API routes → Course handlers: dispatches
backend/src/routes/courseRoutes.js - API routes → AI handlers: dispatches
backend/src/routes/aiRoutes.js - API routes → Review handlers: dispatches
backend/src/routes/reviewRoutes.js - API routes → Token auth: protects routes
backend/src/routes/reviewRoutes.js - API routes → Role checks: checks roles
backend/src/routes/reviewRoutes.js - Course handlers → Course catalog: calls
backend/src/controllers/courseController.js - AI handlers → AI orchestration: generates embeddings
backend/src/controllers/aiController.js - AI handlers → Semantic retrieval: retrieves candidates
backend/src/controllers/aiController.js - AI handlers → Course catalog: gets course data
backend/src/controllers/aiController.js - AI handlers → Language model: requests analysis
backend/src/controllers/aiController.js - Review handlers → Reviews and moderation: calls
backend/src/controllers/reviewController.js - Course catalog → Course embeddings: queues refresh
backend/src/services/courseService.js - Semantic retrieval → AI orchestration: embeds query
backend/src/services/courseRetrievalService.js - Course embeddings → AI orchestration: generates vectors
backend/src/services/courseEmbeddingService.js - Course embeddings → Prisma client: writes vectors
backend/src/services/courseEmbeddingService.js - Course catalog → Prisma client: reads and writes
backend/src/services/courseService.js - Reviews and moderation → Prisma client: persists reviews
backend/src/services/reviewService.js - Reviews and moderation → Notifications: notifies users
backend/src/services/reviewService.js - Prisma client → PostgreSQL: queries
backend/src/lib/prisma.js - Planning services → Prisma client: persists plans
- Saved courses → Prisma client: persists saved items
- Completed courses → Prisma client: persists completions
- AI orchestration → SiliconFlow embeddings: embeds text
README.md - Language model → Zhipu AI: requests generation
README.md - Identity services → Prisma client: persists accounts