1e1c476bc3
feat: add CASL authorization and AI configuration
2026-07-11 14:25:34 +08:00
8ed1682b90
fix permissions and teacher attendance workflows
2026-07-10 20:40:52 +08:00
40aad81087
fix: use rimraf for cross-platform clean command
2026-07-09 10:38:17 +08:00
5ddd6d305a
feat: ordered dev startup with concurrently + wait-on (server → admin)
2026-07-09 10:26:49 +08:00
42d3f0e27f
feat: DingTalk attendance import + integration config + expense types + UI polish
...
Server:
- Add DingTalk attendance import service with SSE progress streaming
- Add IntegrationConfig entity & module for multi-tenant DingTalk setup
- Add ExpenseType entity & ExpenseTypesModule
- Add SeedModule for DB initialization
- Add UserDingMapping entity for DingTalk user linkage
- Attendance service: import flow with dedup & student auto-mapping
- Rooms service: time-range overlap queries
- Sync controller/service: DingTalk integration wiring
- Permission guard: refactor to pure re-export
- Campus scope middleware: tenant-aware filtering
Admin UI:
- Attendance page: import UI with progress & result summary
- All pages: tableStyle/tablePagination standardization
- Login page: responsive styling
- Sensitive data: useViewSensitive hook for masked viewing
- Vite config: path aliases, build optimization
- Test infra: vitest config, test utilities
Docs: PRD DingTalk batch 1 & 2 design docs
2026-07-09 09:11:56 +08:00
d3437311dc
refactor: remove Puppeteer, delete old PDF download endpoint
2026-07-07 09:56:52 +08:00
72f9a58838
feat: rewrite PDF report to puppeteer HTML→PDF with professional 6-page gongxue design
2026-07-06 16:19:50 +08:00
c81b0a0b5c
chore: commit remaining integration files, PM2 single instance, PRD doc
2026-07-06 16:04:53 +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
5f14b9ff15
feat: add NotificationsService with SSE subject pool
2026-07-05 23:01:26 +08:00
b77e5a2f50
fix: remove PermissionButton wrappers from Upload components
2026-07-05 21:37:47 +08:00
5cf7fe05e9
feat(task4): update TypeScript configs to use shared presets
2026-07-02 15:31:29 +08:00
73dd92e615
feat(task3): migrate toolchain to oxfmt + oxlint
...
- Install oxfmt with .oxfmtrc.json (maps Prettier config)
- Install oxlint with oxlint.config.ts (TypeScript + React rules)
- Replace admin ESLint with oxlint
- Remove Prettier integration from server ESLint (keep ESLint for type checking)
- Delete server .prettierrc and admin eslint.config.js
2026-07-02 15:24:29 +08:00
ee2cad0941
feat(task2): add root turborepo and npm workspaces configuration
2026-07-02 15:16:07 +08:00
ef645c0f40
fix: resolve 3 review findings (permission codes, profile guard, JSDoc)
2026-07-02 12:22:49 +08:00