Commit Graph
17 Commits
Author SHA1 Message Date
kavehhn 282dd42422 feat: add employee timing system, notification templates, and professor class plan sms 2026-08-24 19:31:07 +03:30
kavehhn 53fce86ad5 feat: add waitlist module, quick payment/transaction edit, and catering fee deduction from professor share 2026-08-23 23:00:02 +03:30
kavehhn 30db6582b7 feat: auto generate placeholder nationalId for users and professors, auto calculate class end date 2026-08-21 15:03:18 +03:30
kavehhn cbcf3f55db fix(perm): allow array of permissions in permissionMiddleware and accept classes:update or classes:delete 2026-08-21 13:35:16 +03:30
kavehhn e34fd25af7 feat: add soft delete for classes with cascade to sessions and linked records 2026-08-21 13:19:50 +03:30
kavehhn 22b57eeae2 Add professor share calculation and financial reporting feature
Introduces per-class payout configuration (percentage or hourly rate,
plus an optional per-session expense allowance), pure calculation
utilities for professor payout/net profit/receivables, and a new
financial-reports API surface with per-class, per-session, and
date-range/monthly reports. Also adds full CRUD for institutional
expenses used in the range report, and wires up the new permissions
and roles. Fixes a pre-existing ReferenceError (missing
parseImportDate import) in paymentService that blocked creating
payments with dated transactions.
2026-08-21 12:19:09 +03:30
kavehhn 091e519280 Add sessionHolding template, unique 8-digit codes, reason slot for sessionCancelled, and disable unused notifications 2026-08-21 10:44:51 +03:30
kavehhn 0d57854dc3 Add class numberOfSessions and fix attendance completion detection.
Sessions with full student attendance are now excluded from the pending list reliably by loading class rosters from the database.
2026-08-16 08:55:03 +03:30
kavehhn cd98adff84 feat: add pending student registration flow and pricing APIs.
Support public class lookup, user provisioning, installment pricing, and admin approval before final enrollment.
2026-08-16 08:42:25 +03:30
kavehhn f57d8bbdfa feat: add class discounts, frontend visibility, and public listing
Add hasDiscount, freeSpots, and showOnFrontend on classes with a public get-all endpoint and richer notification user populate.
2026-08-16 08:11:42 +03:30
kavehhn 4d60755a95 feat(classes): store weekdays and meeting times on the class
Keep the class schedule on the class itself so SMS and listings do not have to infer days and hours from sessions.
2026-08-15 23:59:07 +03:30
kavehhn 192c595c68 feat: add password change, class unenroll, and optional notify flags
Let admins skip SMS on user, class, and invoice actions, and let users change their own password with the current one.
2026-08-15 23:48:18 +03:30
kavehhn 0cdb9cec20 feat(sms): send class start date, days, and course time
Expose schedule fields on class and invoice templates so SMS can include Jalali start date, weekdays, and hour range.
2026-08-15 23:09:04 +03:30
kavehhn 7394829d49 fix: honor table search q param on users and related lists
Dashboard sends q, but users/classes/payments ignored it; accept q/search and normalize Persian digits.
2026-08-15 02:57:19 +03:30
kavehhn 5c2fad4b44 feat: add adminNotes and registered class counts for users
Expose nationalId aliases and enrollment counts on user list responses, and store admin notes on users, classes, and sessions.
2026-08-15 02:39:10 +03:30
kavehhn bf5e66fa95 feat: add append-only course/user data import and expand user profile
Support uploading structured JSON to create courses, classes, and students without wiping existing data, and merge user name fields while adding gender and registration details from source sheets.
2026-08-15 01:31:44 +03:30
kavehhn f04c797be6 Initial commit: teaching institution management API.
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
2026-08-09 04:18:08 +02:00