How devsoc-unsw/unilectives works
Unilectives is a UNSW course and elective review website. A typical user searches the course catalogue, opens a course, reads reviews and ratings, and can submit or interact with reviews when authenticated. The frontend is a Next.js application backed by an Express API; domain services coordinate course, review, user, and report operations with repositories, Prisma-backed storage, and Redis caching. The excerpts confirm course search and several review operations; broader user, report, and frontend capabilities are represented from the README and tree, with uncertain internal links omitted.
Main entry points: App.ts API application · request.ts API request utility · review.service.ts Review operations · review.controller.ts Review routes
Components 21
Web experience
- Course search
frontend/src/components/ReviewSearchBar/ReviewSearchBar.tsx - Course pages
frontend/src/app/course/[id]/page.tsx - Review interactions
frontend/src/components/ReviewModal/ReviewModal.tsx - User pages
frontend/src/app/user/[zid]/page.tsx - Admin interface
frontend/src/app/admin/page.tsx - API request utility
frontend/src/utils/request.ts
HTTP API
- API application
backend/src/App.ts - Course routes
backend/src/controllers/course.controller.ts - Review routes
backend/src/controllers/review.controller.ts - User routes
backend/src/controllers/user.controller.ts - Report routes
backend/src/controllers/report.controller.ts - Error handling
backend/src/api/middlewares/errorHandler.ts
Domain and data
- Course operations
backend/src/services/course.service.ts - Review operations
backend/src/services/review.service.ts - User operations
backend/src/services/user.service.ts - Report operations
backend/src/services/report.service.ts - Data repositories
backend/src/repositories
Runtime integrations
- PostgreSQL
- Redis cache
backend/src/modules/redis.ts
Other components
- Website visitor
- Authentication provider
Connections 30
- Website visitor → Course search: searches courses
- Website visitor → Course pages: opens course
- Website visitor → Review interactions: writes review
- Course search → API request utility: requests results
- API request utility → Course routes: calls search API
- Course routes → Course operations: calls
- Course operations → Data repositories: queries courses
- Data repositories → PostgreSQL: reads and writes
- Course pages → API request utility: loads course data
- Review interactions → API request utility: submits review
- API request utility → Review routes: calls review API
- Review routes → Review operations: calls
- Review operations → Data repositories: reads and writes
- Review operations → Redis cache: reads and refreshes
- User pages → API request utility: loads user data
- Admin interface → API request utility: requests admin data
- API request utility → User routes: calls user API
- API request utility → Report routes: calls report API
- API application → Course routes: registers
- API application → Review routes: registers
- API application → User routes: registers
- API application → Report routes: registers
- API application → Course operations: constructs
- API application → Review operations: constructs
- API application → User operations: constructs
- API application → Report operations: constructs
- API application → Data repositories: constructs
- Authentication provider → Review routes: authenticates requests
- Authentication provider → User routes: authenticates requests
- Error handling → API application: formats API errors