How haixuan13/classfee-manager works
ClassFee Manager is a single-class ledger for operators and members. The main workflow is sign-in, then recording income/expenses or collecting fees through a batch; batch payments create ledger entries, and the dashboard reconciles balances and summarizes activity. Members can inspect ledger data and their own fee status; operators also manage receipts, categories, notices, class details, and accounts. The README identifies the Python/FastAPI and Vue application. A parallel Java implementation is also present; sampled Java services establish some of its corresponding paths, but its full wiring was not inspected.
Main entry points: routers HTTP routers · auth_service.py Authentication · main.py API assembly · BatchService.java Java batch service
Components 34
Vue application
- Vue interface
web/src/App.vue - Feature views
web/src/views - API client
web/src/api
Python API
- Authentication
server-py/app/services/auth_service.py - HTTP routers
server-py/app/routers - API assembly
server-py/app/main.py - JWT and roles
server-py/app/security.py - Request validation
server-py/app/schemas.py - Response handling
server-py/app/responses.py - Error handling
server-py/app/errors.py - Response serializers
server-py/app/serializers.py
Ledger services
- Ledger records
server-py/app/services/record_service.py - Fee batches
server-py/app/services/batch_service.py - Dashboard
server-py/app/services/dashboard_service.py - Categories
server-py/app/services/category_service.py - Account management
server-py/app/services/user_service.py - Receipt files
server-py/app/services/file_service.py - Ledger export
server-py/app/services/export_service.py - Class notices
server-py/app/services/notice_service.py - Class information
server-py/app/services/class_service.py
Persistence and Java
- Database access
server-py/app/db.py - Domain models
server-py/app/models.py - Java authentication
server/src/main/java/com/classfee/service/AuthService.java - Java batch service
server/src/main/java/com/classfee/service/BatchService.java - Java record service
server/src/main/java/com/classfee/service/RecordService.java - Java batch API
server/src/main/java/com/classfee/controller/BatchController.java - Java exceptions
server/src/main/java/com/classfee/common/BizException.java - Java user context
server/src/main/java/com/classfee/security/UserContext.java - Java roles
server/src/main/java/com/classfee/security/Role.java - Java class mapper
server/src/main/java/com/classfee/mapper/ClsClassMapper.java - Java ledger entity
server/src/main/java/com/classfee/entity/FeeRecord.java - Java class entity
server/src/main/java/com/classfee/entity/ClsClass.java
Other components
- Operator
- Class member
Connections 37
- Operator → Vue interface: uses
README.md - Class member → Vue interface: uses
README.md - Vue interface → Feature views: renders
- Feature views → API client: requests
- API client → HTTP routers: calls
README.md - HTTP routers → API assembly: registered by
server-py/app/main.py - API assembly → Database access: initializes
server-py/app/main.py - API assembly → JWT and roles: installs
server-py/app/main.py - API assembly → Error handling: installs
server-py/app/main.py - HTTP routers → Request validation: validates with
server-py/app/routers/auth.py - HTTP routers → Authentication: dispatches to
server-py/app/routers/auth.py - HTTP routers → Fee batches: dispatches to
README.md - HTTP routers → Ledger records: dispatches to
- HTTP routers → Dashboard: dispatches to
- HTTP routers → Categories: dispatches to
- HTTP routers → Account management: dispatches to
server-py/app/routers/auth.py - HTTP routers → Receipt files: dispatches to
- HTTP routers → Ledger export: dispatches to
- HTTP routers → Class notices: dispatches to
- HTTP routers → Class information: dispatches to
- Authentication → Database access: reads and updates
server-py/app/services/auth_service.py - Authentication → JWT and roles: issues token
server-py/app/services/auth_service.py - Authentication → Domain models: reads users
server-py/app/services/auth_service.py - Fee batches → Domain models: updates fee data
server-py/app/services/batch_service.py - Ledger records → Domain models: updates ledger
server-py/app/services/record_service.py - Ledger records → Receipt files: uses files
server-py/app/services/record_service.py - Authentication → Response serializers: serializes users
server-py/app/services/auth_service.py - HTTP routers → Response handling: returns envelopes
server-py/app/main.py - Error handling → Response handling: formats errors
server-py/app/errors.py - Java batch API → Java batch service: calls
server/src/main/java/com/classfee/controller/BatchController.java - Java batch service → Java class mapper: updates balance
server/src/main/java/com/classfee/service/BatchService.java - Java record service → Java class mapper: updates balance
server/src/main/java/com/classfee/service/RecordService.java - Java record service → Java ledger entity: queries and changes
server/src/main/java/com/classfee/service/RecordService.java - Java batch service → Java class entity: uses class data
server/src/main/java/com/classfee/service/BatchService.java - Java authentication → Java user context: reads context
server/src/main/java/com/classfee/service/AuthService.java - Java batch API → Java roles: requires role
server/src/main/java/com/classfee/controller/BatchController.java - Java batch service → Java exceptions: raises
server/src/main/java/com/classfee/service/BatchService.java