This website requires JavaScript.
0a022c0917
feat(professors,sms): merge professor with users, add existing user link, professor portal endpoint, and SMS bypass list
main
kavehhn
2026-08-25 03:48:19 +03:30
b708a6b777
fix(healthcheck): use dynamic PORT, IPv4 127.0.0.1, and bind 0.0.0.0
kavehhn
2026-08-25 02:56:42 +03:30
38e048067b
fix(docker): copy .npmrc and use npmmirror registry for fast builds
kavehhn
2026-08-25 02:43:34 +03:30
4d711fe39c
build: add .npmrc with liara npm mirror registry
kavehhn
2026-08-25 01:58:16 +03:30
dca7250be0
feat(users,professors): add promote student to professor and full student profile aggregation
kavehhn
2026-08-24 22:52:38 +03:30
282dd42422
feat: add employee timing system, notification templates, and professor class plan sms
kavehhn
2026-08-24 19:31:07 +03:30
53fce86ad5
feat: add waitlist module, quick payment/transaction edit, and catering fee deduction from professor share
kavehhn
2026-08-23 23:00:02 +03:30
e3b51a1629
feat(financial-reports): add institute-wide analytics endpoint
kavehhn
2026-08-23 18:24:32 +03:30
3cc813f24e
fix(payments): enhance duplicate payment check query and auto-populate course
kavehhn
2026-08-23 16:55:48 +03:30
dde0efc72a
fix(sessions): respect database sort order in getAllSessions and getMySessions
kavehhn
2026-08-23 16:41:49 +03:30
22ce6c3fb1
fix(payments,dates): improve duplicate payment detection and Jalali date parsing
kavehhn
2026-08-23 14:15:06 +03:30
945b4e6332
fix(payments): ensure ObjectId casting for duplicate check query
kavehhn
2026-08-23 13:35:30 +03:30
28d401fd0e
feat(payments): add bulk class payments creation and duplicate check
kavehhn
2026-08-23 13:28:06 +03:30
4c07ca2ae1
fix: format prices in notifications, change partial payment label, and add session holding notify API
kavehhn
2026-08-21 20:17:30 +03:30
6839685a21
fix(payments): import buildClassScheduleContext to fix sms notifications
kavehhn
2026-08-21 15:25:02 +03:30
ada1b624b1
fix(payments): prevent auto transaction creation, enable sms by default, and fix transaction sms context
kavehhn
2026-08-21 15:17:41 +03:30
30db6582b7
feat: auto generate placeholder nationalId for users and professors, auto calculate class end date
kavehhn
2026-08-21 15:03:18 +03:30
cbcf3f55db
fix(perm): allow array of permissions in permissionMiddleware and accept classes:update or classes:delete
kavehhn
2026-08-21 13:35:16 +03:30
e34fd25af7
feat: add soft delete for classes with cascade to sessions and linked records
kavehhn
2026-08-21 13:19:50 +03:30
5b56171328
fix: allow payload.professors in dataImportController and normalizeImportPayload
kavehhn
2026-08-21 13:05:28 +03:30
7c74950c95
feat: add professor import support, user account creation, and IBAN/card fields
kavehhn
2026-08-21 12:56:15 +03:30
22b57eeae2
Add professor share calculation and financial reporting feature
kavehhn
2026-08-21 12:19:09 +03:30
3c6eb278b0
Allow enabling/disabling individual SMS template types from dashboard with sync to notification settings
kavehhn
2026-08-21 11:04:26 +03:30
091e519280
Add sessionHolding template, unique 8-digit codes, reason slot for sessionCancelled, and disable unused notifications
kavehhn
2026-08-21 10:44:51 +03:30
5328f36f06
Add admin transaction cancellation without deleting history.
kavehhn
2026-08-16 22:38:00 +03:30
a436cfeb47
Stop reconcile from overwriting edited transaction amounts.
kavehhn
2026-08-16 22:36:12 +03:30
8cd355c24b
Fix transaction due date parsing and preserve edited pending amounts.
kavehhn
2026-08-16 14:53:46 +03:30
4ad5630cb7
fix: clarify why SMS delivery is skipped when a channel gate is off
kavehhn
2026-08-16 13:30:51 +03:30
7d59448991
Improve attendance completion checks and expose recorded counts.
kavehhn
2026-08-16 09:22:41 +03:30
0d57854dc3
Add class numberOfSessions and fix attendance completion detection.
kavehhn
2026-08-16 08:55:03 +03:30
cd98adff84
feat: add pending student registration flow and pricing APIs.
kavehhn
2026-08-16 08:42:25 +03:30
fafc362689
fix: filter attendance sessions to past-due with incomplete records
kavehhn
2026-08-16 08:22:18 +03:30
f57d8bbdfa
feat: add class discounts, frontend visibility, and public listing
kavehhn
2026-08-16 08:11:42 +03:30
21bff0c4ba
feat: add admin transaction create/update with auto payment status sync
kavehhn
2026-08-16 08:01:37 +03:30
06efcd5b90
feat: store payment installments in a transactions collection
kavehhn
2026-08-16 07:32:27 +03:30
b4ca5678bf
Add user preferences for theme and font size.
kavehhn
2026-08-16 07:28:58 +03:30
3348ca5798
feat: import class sessions, attendance, and payments from JSON
kavehhn
2026-08-16 07:04:16 +03:30
72be01fee3
feat: add messaging toggles, password reset SMS, and payment discounts
kavehhn
2026-08-16 06:58:08 +03:30
a6c760c3b7
fix(sms): prefix course time with ساعت
kavehhn
2026-08-16 00:16:40 +03:30
4d60755a95
feat(classes): store weekdays and meeting times on the class
kavehhn
2026-08-15 23:59:07 +03:30
192c595c68
feat: add password change, class unenroll, and optional notify flags
kavehhn
2026-08-15 23:48:18 +03:30
0cdb9cec20
feat(sms): send class start date, days, and course time
kavehhn
2026-08-15 23:09:04 +03:30
366cd41bb7
fix(settings): persist every SMS template variable on save
kavehhn
2026-08-15 22:55:54 +03:30
d3190a8729
fix(settings): support Persian and flexible SMS variable names and improve save persistence
kavehhn
2026-08-15 22:03:22 +03:30
d2d4ee719b
feat(settings): support dynamic number of SMS template variables
kavehhn
2026-08-15 21:58:10 +03:30
9472537536
fix(professors): handle nationalId and phone aliases with trimming; update payment sms
kavehhn
2026-08-15 19:07:17 +03:30
93f3aeb719
feat(sms): add FULLNAME, PAYMENT_PRICE, and COURSE template variables for invoice SMS
kavehhn
2026-08-15 18:55:17 +03:30
1ef54ad414
fix: stream FilePond uploads to S3 and proxy private file previews
kavehhn
2026-08-15 18:46:26 +03:30
7ebf9409f0
feat: let SuperAdmin rename SMS template variable names
kavehhn
2026-08-15 18:43:24 +03:30
3160f07873
feat: send account and invoice SMS from stored template IDs
kavehhn
2026-08-15 18:37:44 +03:30
23edffba6a
fix: rewrite temp files with PutObject instead of SeaweedFS CopyObject
kavehhn
2026-08-15 03:33:55 +03:30
877dfa65d5
fix: treat SuperAdmin role name case-insensitively in permission checks
kavehhn
2026-08-15 03:27:21 +03:30
e1772a2559
fix: force HTTPS S3 endpoint to avoid Coolify 307 on uploads
kavehhn
2026-08-15 03:04:53 +03:30
aa2132f02c
fix: disable AWS SDK checksum defaults for SeaweedFS uploads
kavehhn
2026-08-15 03:00:42 +03:30
7394829d49
fix: honor table search q param on users and related lists
kavehhn
2026-08-15 02:57:19 +03:30
4603b45208
feat: private certificates/documents buckets with SeaweedFS support
kavehhn
2026-08-15 02:53:59 +03:30
5c2fad4b44
feat: add adminNotes and registered class counts for users
kavehhn
2026-08-15 02:39:10 +03:30
bf5e66fa95
feat: add append-only course/user data import and expand user profile
kavehhn
2026-08-15 01:31:44 +03:30
35704409ec
feat: bootstrap SuperAdmin from env and lock one-time seeding
kavehhn
2026-08-14 23:23:06 +03:30
3ca098b74d
build(docker): add multi-stage production Dockerfile with health check
kavehhn
2026-08-12 06:46:04 +03:30
d0cde07a1f
feat: add /api/seed endpoint and refactor seed.js
kavehhn
2026-08-12 06:29:05 +03:30
d28e71c3fa
chore: update node version to 22 in Dockerfile
kavehhn
2026-08-12 05:55:55 +03:30
07edb98a05
feat: enhance health check endpoint with database status check
kavehhn
2026-08-12 05:26:00 +03:30
f04c797be6
Initial commit: teaching institution management API.
kavehhn
2026-08-09 04:18:08 +02:00