How qusheo/stud-portrait-app works
StudPortrait is a student-portrait and analytics web application. A user signs in, reaches permission-guarded student or admin views, and the frontend services call Django endpoints to retrieve portraits, results, and analytics; admin workflows also include data import and curriculum parsing. The README documents PostgreSQL and Redis configuration. The graph preserves documented analytics and operational capabilities where implementation was not sampled; those links are omitted or marked unverified rather than inferred from names.
Main entry points: models.py PostgreSQL data · index.jsx App routing · services Frontend services · urls.py Django routes
Components 26
Web experience
- App routing
frontend/src/index.jsx - Login view
frontend/src/views/auth/LoginView.jsx - Student portrait
frontend/src/views/user/UserView.jsx - Portrait report
frontend/src/views/user/UserReportView.jsx - Admin analytics
frontend/src/views/admin - Superadmin tools
frontend/src/views/super - Frontend services
frontend/src/services - HTTP API client
frontend/src/api.js
Backend API
- Django routes
backend/src/portrait/urls.py - Session and permissions
backend/src/portrait/endpoints/auth.py - Response and helpers
backend/src/portrait/endpoints/common.py - Student endpoints
backend/src/portrait/endpoints/entities/students.py - PostgreSQL data
backend/src/portrait/models.py - Redis cache
Portrait analytics
- Analysis endpoints
backend/src/portrait/endpoints/datanal.py - Advanced analysis
backend/src/portrait/endpoints/statisticsService/analysis_end.py - ML model
backend/src/portrait/mlmodel.py - Student selection
backend/src/portrait/endpoints/selectionService/student_selection.py - Student matching
backend/src/portrait/endpoints/matchingService/matching.py - Student interests
backend/src/portrait/endpoints/student_interests.py - LLM service
model/src/main.py
Data operations
- Data import
backend/src/portrait/endpoints/dataload.py - Curriculum parsing
backend/src/portrait/endpoints/parsers/disciplines_parser.py - Teacher directory parsing
backend/src/portrait/endpoints/parsers/teacher_directory_parser.py - Audit tools
backend/src/portrait/endpoints/audit.py
Other components
- Student or admin
Connections 34
- Student or admin → App routing: opens
frontend/src/index.jsx - App routing → Login view: routes to
frontend/src/index.jsx - App routing → Student portrait: routes to
frontend/src/index.jsx - App routing → Portrait report: routes to
frontend/src/index.jsx - App routing → Admin analytics: routes to
frontend/src/index.jsx - App routing → Superadmin tools: routes to
frontend/src/index.jsx - Login view → Frontend services: requests data
- Student portrait → Frontend services: requests data
- Portrait report → Frontend services: requests data
- Admin analytics → Frontend services: requests data
- Superadmin tools → Frontend services: requests data
- Frontend services → HTTP API client: calls
frontend/src/services/StudentService.ts - HTTP API client → Django routes: HTTP requests
frontend/src/api.js - Django routes → Session and permissions: routes to
- Django routes → Student endpoints: routes to
- Django routes → Analysis endpoints: routes to
- Session and permissions → PostgreSQL data: reads account
backend/src/portrait/endpoints/auth.py - Student endpoints → Response and helpers: uses helpers
backend/src/portrait/endpoints/entities/students.py - Student endpoints → PostgreSQL data: reads and writes
backend/src/portrait/endpoints/entities/students.py - Analysis endpoints → Response and helpers: uses helpers
backend/src/portrait/endpoints/datanal.py - Advanced analysis → Analysis endpoints: imports analysis
backend/src/portrait/endpoints/statisticsService/analysis_end.py - Advanced analysis → ML model: uses model
backend/src/portrait/endpoints/statisticsService/analysis_end.py - Analysis endpoints → PostgreSQL data: queries data
- Student interests → Response and helpers: uses helpers
backend/src/portrait/endpoints/student_interests.py - Student interests → Session and permissions: uses auth
backend/src/portrait/endpoints/student_interests.py - Student interests → PostgreSQL data: reads and writes
- Data import → PostgreSQL data: imports data
- Curriculum parsing → PostgreSQL data: stores mappings
- Teacher directory parsing → PostgreSQL data: loads directory
- Audit tools → PostgreSQL data: reads audit data
- Response and helpers → Redis cache: uses cache
backend/src/portrait/endpoints/common.py - ML model → LLM service: integrates
- Student selection → PostgreSQL data: selects students
- Student matching → PostgreSQL data: matches records