Commit Graph

82 Commits

Author SHA1 Message Date
Clément Oudelet be651ed2dd PMPR-46/47 : PUT et DELETE /notes/{numEtud}/{idModule} 2026-04-23 11:56:26 +02:00
Clément Oudelet 6f5e39c5be GET /notes/{numEtud}/{idModule} - récupérer le détail d'une note pour un étudiant dans un module 2026-04-23 11:23:17 +02:00
Clément Oudelet 79669d60cf PMPR-38 : POST /ue-modules - associer un module à une UE 2026-04-22 20:40:28 +02:00
anys d3f1f433e1 feat(api): implement single ajustement retrieval endpoint
- GET /ajustements/{numEtud}/{idUE}: get ajustement by student numEtud
  and UE id
- Requires employee role
2026-04-22 17:24:39 +00:00
anys 022994e5a7 feat(api): implement ajustements list and create endpoints
- GET /ajustements: list all ajustements with optional numEtud/idUE
  filters
- POST /ajustements: create new ajustement for student in UE
- Both require employee role
2026-04-22 17:24:07 +00:00
Clément Oudelet 33d023986c PMPR-34 : GET /ues/{idUE} - récupérer une UE par son id 2026-04-22 17:20:20 +00:00
Clément Oudelet bbc9ea58e2 PMPR-37 : GET /ue-modules - liste les associations UE-Module 2026-04-22 17:15:54 +00:00
Clément Oudelet 96b7edf77f PMPR-43 : POST /notes - créer une note 2026-04-22 17:14:45 +00:00
anys 2739a01ab5 fix(api): align enseignements route with Fresh file routing
- Replace flat file `[idProf]_[idModule]_[idPromo].ts`
  with nested structure `[idProf]/[idModule]/[idPromo].ts`
- Ensures URL matches `/enseignements/{idProf}/{idModule}/{idPromo}`
2026-04-22 17:13:14 +00:00
anys f3c1f10999 feat(api): implement enseignements CRUD endpoints
Add CRUD API for enseignements (prof-module-promo associations):

- POST /enseignements: Create with validation (201/409)
- GET /enseignements/{idProf}/{idModule}/{idPromo}: Read by composite
  key (200/404)
- DELETE /enseignements/{idProf}/{idModule}/{idPromo}: Delete by
  composite key (204/404)

Access control: Employee-only (403 Forbidden)
Tests: 7 unit tests added

Note: RBAC implementation pending (current access control is temporary)
2026-04-22 17:13:14 +00:00
djalim 92182b952f feat(modules): add CRUD endpoints for module resource
Implement GET, PUT, DELETE for /modules/{idModule} with 404 handling.
2026-04-22 14:47:08 +02:00
djalim cf3c7c0693 feat(admin/api): add modules endpoint with GET and POST handlers 2026-04-22 14:46:00 +02:00
djalim 6c18189d9f chore(deps): update drizzle-orm to 0.45.2 and pg to 8.20.0 2026-04-22 14:40:19 +02:00
djalim 2c1fd7e5ad feat(promotions): add CRUD endpoints for promotion by id
- GET /promotions/{idPromo} returns promotion or 404
- PUT /promotions/{idPromo} updates year or 404
- DELETE /promotions/{idPromo} deletes promotion or 404
- Only employees allowed, otherwise 403
2026-04-22 14:40:19 +02:00
Clément Oudelet 2f15efe21e PMPR-33 : POST /ues - créer une UE 2026-04-22 14:28:03 +02:00
Clément Oudelet b2847a4a7d PMPR-42 : GET /notes - récupère les notes 2026-04-22 12:20:59 +00:00
djalim 3f0c8d079f feat(students): add promotions API for employees 2026-04-22 14:13:59 +02:00
djalim 4eaea48ebd feat(students): add CRUD endpoints for student by numEtud 2026-04-22 14:11:29 +02:00
djalim f959cf0d3a feat(students): add CSV import endpoint for student data 2026-04-22 14:10:18 +02:00
djalim 0d45bd4c1c refactor(students): simplify API, remove unused imports and helpers
refactor(students): add query param filtering, enforce employee role for POST
refactor(students): return created student in POST response
2026-04-22 14:06:01 +02:00
djalim b5f134d016 feat(roles): add CRUD endpoints for role by id 2026-04-22 13:45:59 +02:00
djalim 9a3f49ecfe feat(admin/api): add roles endpoint with GET and POST 2026-04-22 13:44:30 +02:00
djalim 5a86f69093 feat: add CRUD endpoints for users by id 2026-04-22 13:42:29 +02:00
djalim 03b58e7b0a feat(admin/api/users): add GET and POST endpoints for users 2026-04-22 13:41:33 +02:00
djalim 9168ca53da feat(admin): scaffold admin module and add GET /permissions endpoint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 13:30:19 +02:00
Clément Oudelet 32ffbb7cda PMPR-32 : GET /ues - liste toutes les UEs 2026-04-22 12:50:46 +02:00
djalim 9636242b42 refactor(mobility): switch to Drizzle ORM and remove raw SQLite usage
- replace Database with db instance
- use schema imports for tables
- use db.select, db.insert, onConflictDoUpdate
- remove manual connection handling and console logs
- improve type safety and maintainability

refactor(students): migrate to Drizzle ORM and async queries

Replace raw sqlite queries with Drizzle ORM. Remove the connect helper and use the
shared db instance and schema definitions. Convert getItself, getAll and
addStudents to async functions, use eq and lt helpers, and simplify promotion
handling. This improves type safety, maintainability, and allows non‑blocking
database access.
2026-04-03 10:43:29 +02:00
djalim 58c8ff56ba 🐛(components): add missing button types and keys
Check Deno code / Check Deno code (pull_request) Successful in 40s
Add type="button" to the EditMobility and UploadStudents buttons
to prevent default form submission behavior.
Include a key prop on Student components in Promotion for stable list rendering.
2026-01-09 12:41:51 +01:00
Kevin FEDYNA 4c54283bfd Finalized students app 2025-01-28 10:03:20 +01:00
Kevin FEDYNA e88045c952 Refactored students 2025-01-27 13:11:13 +01:00
Kevin FEDYNA 4ff76fdf6f Added hidden admin only page prop effect 2025-01-27 10:39:42 +01:00
Kevin FEDYNA 1f3a723dbe Merge branch 'main' into PMPR-27 2025-01-25 10:48:41 +01:00
Kevin FEDYNA 6d4d36e089 Fixed linting and formatting errors 2025-01-25 10:48:04 +01:00
Clayzxr 16b7579e10 Trying to make EditStudents works 2025-01-24 21:38:53 +01:00
Clayzxr fcc0a4413c Update student to have an ID 2025-01-24 20:48:33 +01:00
Clayzxr c3d3354537 Trying to make EditMobility works 2025-01-24 19:46:53 +01:00
Clayzxr f07b4dc616 Consult mobility working 2025-01-24 17:09:51 +01:00
Clayzxr 575f0df4bc Fixing bugs 2025-01-24 16:23:47 +01:00
Clayzxr a867f67fd9 Trying to fix DB mobility 2025-01-24 16:17:51 +01:00
Clayzxr cc26ec9445 Trying to make mobility works 2025-01-22 22:45:34 +01:00
Clayzxr b835495e15 Consult mobility (not working yet) 2025-01-22 17:06:42 +01:00
Clayzxr 4abf540558 Init mobility DB 2025-01-22 15:09:22 +01:00
Clayzxr 36c5c9cf39 Test to access student DB in other apps (working) 2025-01-22 11:35:47 +01:00
Kevin FEDYNA 8a5461827e Optimized code and wrote documentation 2025-01-22 11:15:43 +01:00
Clayzxr d767cb0898 Minor fix for DB (working) 2025-01-22 11:00:18 +01:00
Kevin FEDYNA 3ce1273455 Started documenting code 2025-01-22 00:54:43 +01:00
Kevin FEDYNA 596ee0536a formatted code 2025-01-21 23:53:43 +01:00
Kevin FEDYNA 5e75c688c8 Added layer of abstraction for database connection 2025-01-21 23:49:52 +01:00
Kevin FEDYNA 85766ffeed changed login and logout to adapt to domain and added ToU 2025-01-21 22:31:36 +01:00
Clayzxr b5fedbb425 Moved all student management tools into student app for global uses (working) 2025-01-21 17:29:59 +01:00