Commit Graph

16 Commits

Author SHA1 Message Date
b6990dd11b feat: add student archive module with full CRUD APIs 2026-07-06 15:46:57 +08:00
2ce73b8fc3 feat: PM2 + Docker deployment config (MySQL container, PM2 for backend+frontend proxy) 2026-07-06 10:12:42 +08:00
7b298a615c feat: complete PRD verification fixes and deployment readiness
- Add CommonModule to provide/export CampusScope across business modules
- Replace DepartmentsModule imports with CommonModule in 11 modules
- Add missing Class/Tenant repository imports to StudentsModule and SchedulesModule
- Fix service specs with CampusScope, ClassRepository, StudentRepository mocks
- Move better-sqlite3 to optionalDependencies for production Docker builds
- Rewrite Dockerfiles for monorepo root build context
- Update docker-compose.yml service build contexts
2026-07-06 01:55:35 +08:00
abcfbc6121 feat: add CampusScope request-level provider for data isolation 2026-07-05 23:50:22 +08:00
0e08770cf4 feat: add DepartmentsModule with DTO, Service, and stub controller 2026-07-05 23:47:41 +08:00
ce36a92482 fix: revert untracked ExpenseType refs, fix findByUser falsy cursor check 2026-07-05 23:05:25 +08:00
5f14b9ff15 feat: add NotificationsService with SSE subject pool 2026-07-05 23:01:26 +08:00
6737c00d96 fix: make JwtAuthGuard global to run before PermissionGuard, skip @Public routes 2026-07-05 21:23:42 +08:00
eb82b269c1 fix: add missing Class/ClassStudent/ClassTeacher/DepositInstallment to TypeORM entities list 2026-07-05 20:55:36 +08:00
09580e4a4e feat: P2-15 cron-based DingTalk/WeCom sync with logging and incremental sync
- Add @nestjs/schedule dependency
- Create SyncLog entity (platform, syncType, status, recordsCount, errorMessage, timestamps)
- Create SyncState entity for tracking lastSyncAt per platform
- SyncService with @Cron('0 2 * * *') daily scheduled sync
- Incremental sync: tracks last_sync_at per platform, passes to integration APIs
- Full/incremental mode determined by existence of prior sync
- SyncController: POST /sync/trigger (manual), GET /sync/logs (history)
- Register SyncModule in AppModule with ScheduleModule
2026-07-05 20:48:43 +08:00
b7117ddf2d fix: review blockers — entity registration, session enum, conflict date-range, @Type decorators 2026-07-05 20:20:43 +08:00
b6e308ae2a feat: add Attendance module with batch, summary, calendar, and dingtalk endpoints 2026-07-05 19:44:10 +08:00
037c0e07e0 feat: add Schedules module with conflict detection and weekly view 2026-07-05 19:21:37 +08:00
ec26cb5f5e feat(classes): add ClassesController with operation logging and permission guards 2026-07-05 19:05:18 +08:00
4f4cee157a chore: commit oxfmt formatting changes and verify artifacts 2026-07-02 15:55:09 +08:00
46a817503e feat(task1): restructure directories for turborepo monorepo
- Move backend/ to apps/server/ via git mv
- Move frontend/ to apps/admin/ via git mv
- Create packages/typescript-config/ with base, nestjs, and react-vite presets
2026-07-02 15:05:12 +08:00