A modular and scalable Student Record Management System built with NestJS.
The src folder contains the main application code, organized by feature modules:
src/
app.controller.ts
app.module.ts
app.service.ts
main.ts
admin-logs/
admin-logs.controller.ts
admin-logs.module.ts
admin-logs.service.ts
dto/
entities/
admin-profiles/
admin-profiles.controller.ts
admin-profiles.module.ts
admin-profiles.service.ts
dto/
entities/
admins/
admins.controller.ts
admins.module.ts
admins.service.ts
dto/
entities/
course_inrollments/
...
courses/
courses.controller.ts
...
database/
...
feedbacks/
...
password-changes/
password-changes.controller.ts
password-changes.module.ts
password-changes.service.ts
dto/
entities/
reports/
reports.controller.ts
reports.module.ts
reports.service.ts
dto/
entities/
seed-data/
...
sessions/
...
students/
...
subjects/
subjects.controller.ts
subjects.module.ts
subjects.service.ts
dto/
entities/
Each feature module (e.g., admin-logs, admins, courses, reports, subjects, etc.) contains its own controller, service, DTOs, and entities for better modularity and maintainability.
# Install dependencies
pnpm install
# Run in development mode
pnpm run start:dev# Unit tests
pnpm run test
# End-to-end tests
pnpm run test:e2e
# Test coverage
pnpm run test:covPOST /register— Register a new adminGET /auths— Get all adminsGET /auths/:id— Get a specific admin by IDPATCH /auths/:id— Update an admin by IDDELETE /auths/:id— Delete an admin by ID
POST— Create a new admin profileGET— Get all admin profilesGET /:id— Get a specific admin profile by IDPATCH /:id— Update an admin profile by IDDELETE /:id— Delete an admin profile by ID
POST— Create a new admin logGET— Get all admin logsGET /:id— Get a specific admin log by IDPATCH /:id— Update an admin log by IDDELETE /:id— Delete an admin log by ID
POST— Create a new studentGET— Get all studentsGET /:id— Get a specific student by IDPATCH /:id— Update a student by IDDELETE /:id— Delete a student by ID
POST— Create a new courseGET— Get all coursesGET /:id— Get a specific course by IDPATCH /:id— Update a course by IDDELETE /:id— Delete a course by ID
POST— Create a new subjectGET— Get all subjectsGET /:id— Get a specific subject by IDPATCH /:id— Update a subject by IDDELETE /:id— Delete a subject by ID
POST— Create a new reportGET— Get all reportsGET /:id— Get a specific report by IDPATCH /:id— Update a report by IDDELETE /:id— Delete a report by ID
POST— Create a new feedbackGET— Get all feedbacksGET /:id— Get a specific feedback by IDPATCH /:id— Update a feedback by IDDELETE /:id— Delete a feedback by ID
POST— Create a new sessionGET— Get all sessionsGET /:id— Get a specific session by IDPATCH /:id— Update a session by IDDELETE /:id— Delete a session by ID
POST— Create a new course enrollmentGET— Get all course enrollmentsGET /:id— Get a specific course enrollment by IDPATCH /:id— Update a course enrollment by IDDELETE /:id— Delete a course enrollment by ID
POST— Create a new password change recordGET— Get all password change recordsGET /:id— Get a specific password change record by IDPATCH /:id— Update a password change record by IDDELETE /:id— Delete a password change record by ID
POST— Seed the database with initial data
Note: All endpoints use RESTful conventions. Adjust the base path as needed depending on your deployment or API gateway.
This project is MIT licensed.