Skip to content

Latest commit

 

History

History
238 lines (161 loc) · 6.95 KB

ERP.adoc

File metadata and controls

238 lines (161 loc) · 6.95 KB

SPEC-001: Hermes - Classroom Management Application

1. Introduction and Purpose

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:

  1. Efficient user management.

  2. Creating and managing classes, assignments, and grading.

  3. Real-time communication: class discussions and private messaging.

  4. Real-time notifications for assignment deadlines, announcements, and other important updates.

  5. Support for file uploads (assignments, resources, and other media).

  6. Reports on student performance and class activity.

Hermes will maintain seamless expirence for users across all platforms.

  • Android

  • Ios

  • Web

2. Functional Requirements

2.1. Mandatory Requirements

  1. User Management:

    • Role-based access control for Admins, Teachers, and Students.

    • User registration, login, and profile management.

    • Password recovery and reset password.

  2. Class Management:

    • Creation, modification, and deletion of classes.[Teacher only]

    • Allow students to join/leave classes.

    • Class scheduling and calendar integration for class sessions.

  3. Assignments and Grading:

    • Creation and submission of assignments.

    • Grading system for teachers to evaluate assignments.[Teacher only]

  4. Content and File Sharing:

    • File uploads for assignments, lecture notes, and resources.

  5. Real-time Notifications:

    • Notifications for assignment deadlines, class updates, and new messages. [Web and mobile]

  6. Communication Channels:

    • Real-time class discussions and group chats.[Text only]

    • Private messaging between teachers, students, or both.

2.2. important requirements

  1. Content and File Sharing:

    • Support for multimedia content (videos and images).

  2. Analytics:

    • Analytical dashboards for teachers to monitor student performance.

    • Progress reports and statistics for students.

2.3. Suggested requirements

  1. Customizable User Interface:

    • Theme and layout customization for personalizing the user experience.

    • Responsive design for mobile and desktop users.

    • Support dark and light theme

  2. User Preferences:

    • Personalized notifications and alerts for each user.

  3. Attendance Management:

    • System for recording and tracking student attendance.

  4. Achievements :

    • System for student achievements and certifications.

2.4. Other versions requirements (Not For MVP Version)

  1. Offline Mode:

    • Almost all functionalities will work temprarly without internet connection and will be synced when it back.

  2. Integrating with other tools

    • Integration with other tools like Google Classroom, Microsoft Teams, or Slack.

  3. Ai features

    • Integration with AI for automatic grading, material generation, and assignments generation.

3. Non-Functional Requirements

  1. Performance:

    • All system interaction must happen with low latency (<200ms response time).

    • The system must handle up to 5,000 concurrent users.

  2. 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.

  3. Scalability:

    • The application should be horizontally scalable.

    • MongoDB’s sharding mechanism should be employed.

  4. 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,)

  5. User Experience:

    • The application should support Localization.

4. System Architecture

@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

5. Development and Deployment

  • Version Control: All code will be maintained in a Github repository.

6. User Roles

  1. Admin:

    • Manages platform settings, user accounts, and system-wide configurations.

  2. Teacher:

    • Creates and manages classes and assignments.

  3. Student:

    • Enrolls in classes, submits assignments, and communicate with other students or teachers.

7. Modules

  1. Authentication:

    • Handles user login, registration, session management, and password recovery.

  2. Class Management:

    • Manages class creation, enrollment, and scheduling.

  3. Assignment:

    • Manages assignment creation, submission, and grading.

  4. Communication:

    • Provides real-time chat, class discussions, and messaging functionality.

  5. Notification:

    • Real-time notification system for alerts on assignments, grades, and announcements.

  6. Reporting:

    • Generates reports on student performance and engagement.

8. API Requirements

9. User Interface

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.

10. Milestones and Timelines

  • 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)