Hermes is virtual learning platform which makes it easy for educators and students to manage educational workflows.
Hermes achieves that by providing tools for class organization, assignments, communication, and grading.
The application will be developed using Go for backend services, due to its high performance and scalability.
The main database of the application will be MongoDB due to its schema flexibility.
The core objectives of Hermes are:
-
Efficient user management.
-
Creating and managing classes, assignments, and grading.
-
Real-time communication: class discussions and private messaging.
-
Real-time notifications for assignment deadlines, announcements, and other important updates.
-
Support for file uploads (assignments, resources, and other media).
-
Reports on student performance and class activity.
Hermes will maintain seamless expirence for users across all platforms.
-
Android
-
Ios
-
Web
-
User Management:
-
Role-based access control for Admins, Teachers, and Students.
-
User registration, login, and profile management.
-
Password recovery and reset password.
-
-
Class Management:
-
Creation, modification, and deletion of classes.[Teacher only]
-
Allow students to join/leave classes.
-
Class scheduling and calendar integration for class sessions.
-
-
Assignments and Grading:
-
Creation and submission of assignments.
-
Grading system for teachers to evaluate assignments.[Teacher only]
-
-
Content and File Sharing:
-
File uploads for assignments, lecture notes, and resources.
-
-
Real-time Notifications:
-
Notifications for assignment deadlines, class updates, and new messages. [Web and mobile]
-
-
Communication Channels:
-
Real-time class discussions and group chats.[Text only]
-
Private messaging between teachers, students, or both.
-
-
Content and File Sharing:
-
Support for multimedia content (videos and images).
-
-
Analytics:
-
Analytical dashboards for teachers to monitor student performance.
-
Progress reports and statistics for students.
-
-
Customizable User Interface:
-
Theme and layout customization for personalizing the user experience.
-
Responsive design for mobile and desktop users.
-
Support dark and light theme
-
-
User Preferences:
-
Personalized notifications and alerts for each user.
-
-
Attendance Management:
-
System for recording and tracking student attendance.
-
-
Achievements :
-
System for student achievements and certifications.
-
-
Offline Mode:
-
Almost all functionalities will work temprarly without internet connection and will be synced when it back.
-
-
Integrating with other tools
-
Integration with other tools like Google Classroom, Microsoft Teams, or Slack.
-
-
Ai features
-
Integration with AI for automatic grading, material generation, and assignments generation.
-
-
Performance:
-
All system interaction must happen with low latency (<200ms response time).
-
The system must handle up to 5,000 concurrent users.
-
-
Security:
-
Data encryption for (passwords, messages) using TLS for communication and AES for storage.
-
Role-based access control to limit access based on user roles.
-
-
Scalability:
-
The application should be horizontally scalable.
-
MongoDB’s sharding mechanism should be employed.
-
-
Maintainability:
-
Code should follow modular design principles.
-
Must follow separation of concerns principle.
-
Detailed documentation for APIs.
-
Must follow clean code practices (SOLID principles).
-
Must follow security best practices (input validation, encryption, authentication).
-
Must follow API design guidelines (such as Rate-limiting,)
-
-
User Experience:
-
The application should support Localization.
-
@startuml !theme hacker skinparam shadowing false skinparam rectangle { BackgroundColor #1E1E1E BorderColor #5D5D5D FontColor white FontSize 12 } skinparam package { BackgroundColor #2E2E2E BorderColor #888888 FontColor white FontSize 13 } skinparam arrow { Color #90EE90 Thickness 2 } package "Backend Services" as BE { rectangle "User Management" as UM rectangle "Class Management" as CM rectangle "Assignment" as ASGN rectangle "Notification" as NT rectangle "Communication" as COM UM -[#90EE90]-> CM : authenticate request UM -[#90EE90]-> NT : notify new login event CM -[#90EE90]-> NT : notify class event ASGN -[#90EE90]-> NT : notify assignment event COM -[#90EE90]-> NT : notify message event } package "Database" as DB { database "MongoDB" as MDB cloud "Redis" as RD } package "Storage" as STG { rectangle "Firestorage" as FS } BE -[#90EE90]-> DB : store data BE -[#90EE90]-> STG : store multimedia data @enduml
-
Admin:
-
Manages platform settings, user accounts, and system-wide configurations.
-
-
Teacher:
-
Creates and manages classes and assignments.
-
-
Student:
-
Enrolls in classes, submits assignments, and communicate with other students or teachers.
-
-
Authentication:
-
Handles user login, registration, session management, and password recovery.
-
-
Class Management:
-
Manages class creation, enrollment, and scheduling.
-
-
Assignment:
-
Manages assignment creation, submission, and grading.
-
-
Communication:
-
Provides real-time chat, class discussions, and messaging functionality.
-
-
Notification:
-
Real-time notification system for alerts on assignments, grades, and announcements.
-
-
Reporting:
-
Generates reports on student performance and engagement.
-
The user interface design will prioritize simplicity and ease of use, adhering to best practices in user experience (UX). Key principles include:
-
Intuitive Navigation: A clear, easy-to-navigate dashboard for teachers and students.
-
Responsive Design: The interface will be mobile-friendly, ensuring seamless usage across devices (desktop, tablet, mobile).
-
Accessible Design: The UI will comply with accessibility standards (WCAG 2.1) to ensure it is usable by individuals with disabilities.
-
Milestone 1: Requirements Gathering and Design (1 weeks)
-
Milestone 2: Backend Development (User Management, Class Management, Assignment Module) (8 weeks)
-
Milestone 3: Frontend Development (Web and Mobile Apps) (5 weeks)
-
Milestone 4: Integration of Features (3 weeks)
-
Milestone 5: Deployment (2 weeks)