ScholarSuite 1.0 is a school management application that allows for managing users, school levels, classes, students, attendance, disciplinary reports, and more.
- react
- tailwindcss
- typescript
- nextjs
- next-auth
- prisma
- nodejs
- storybook
- react-pdf
- react-pdf-tailwind
- nodemailer
- react-email
- postgreSQL
- User management
- First name
- Last name
- Email (optional)
- Password (hashed)
- Role (teacher or administrator represented by an integer)
- State (enabled or disabled)
- Creation date (internal use)
- Modification date (internal use)
- School level management
Represents school levels (primary, secondary, etc.)
- Name
- Order, allowing to give an order to the school levels
- Creation date (internal use)
- Modification date (internal use)
- Class management
Represents classes (1a, 1b, 2a, 2b, etc...) of a school level.
- Name
- School level
- Creation date (internal use)
- Modification date (internal use)
- Student management
- First name
- Last name
- Date of birth
- Class
- Contact email
- State (enabled or disabled)
- Creation date (internal use)
- Modification date (internal use)
- Subject management
Represents the subjects taught in a class (Ex: Mathematics, French, etc...).
- Name
- Creation date (internal use)
- Modification date (internal use)
- Grade management
- A value
- A student
- A subject
- A grade period
- A group
- CSV file template management
- Importing grades from a CSV file
- User interface for entering grades
- Attendance management
- Student
- Date (
date
date db type), only the day is taken into account because the time depends on the time slot - User (teacher, or administrator)
- Time slot
- Group
- Treated (for educators who can process absences)
- School year
- Creation date (internal use or for fraud verification)
- Modification date (internal use)
- Disciplinary report management
- Student
- Date (Represents the date of the incident)
- Description
- Creation date (internal use, or for fraud verification)
- Modification date (internal use)
- Time slot management
Represents time slots (h1, h2, h3, h4, etc...) of a school day. Time slots are used for attendance.
- Name
- Start time
- End time
- School level (optional)
- Creation date (internal use)
- Modification date (internal use)
- Grading period management
Represents a grading period (trimester, semester, etc...).
- Name
- Start date
- End date
- Academic year(s)
- Creation date (internal use)
- Modification date (internal use)
- Report card management
- Generation of report cards in web or pdf format
- Group management
Represents the groups of students (Ex: Group A, Group B, etc...).
- Name
- Subject
- User(s)
- Student(s)
- School level (optional)
- Creation date (internal use)
- Modification date (internal use)
- School year management
Represents school years (2021-2022, 2022-2023, etc...).
- Name
- Start date
- End date
- Archived (boolean)
- Creation date (internal use)
- Modification date (internal use)
- API Key management
- Name
- Key (unique)
- User
- Expiration date
- Creation date (internal use)
- Modification date (internal use)
- Many-to-Many relations
- Between User and Class
- Between User and Group
- Between Student and Group
- Authentication
- Relational database
- Internationalization
- Design system and reusable components
- No duplicated code
- REST API, which can be used by third-party services
- Unit tests not complete
- Integration tests (E2E)
- Visual testing (Storybook) not complete
- Markdown documentation, for maintainers, contributors and users
- Docker, for development and production
- SSO (github, gitlab, google, apple)
- The application must support light and dark theme
- Schedule management (If there is a demand or someone who knows how to develop it)
- Use of email sending for password reset or to notify of events such as an unjustified absence.
- Management of justified and unjustified absences