SRS Document
SRS Document
Specification
for
<Learning Management>
Version <1.0>
Prepared by
Contents
1 INTRODUCTION............................................................................................................... 1
1.1 DOCUMENT PURPOSE.................................................................................................. 1
1.2 PRODUCT SCOPE......................................................................................................... 1
1.3 INTENDED AUDIENCE AND DOCUMENT OVERVIEW.....................................................1
1.4 DEFINITIONS, ACRONYMS AND ABBREVIATIONS..........................................................2
1.5 DOCUMENT CONVENTIONS.......................................................................................... 2
1.6 REFERENCES AND ACKNOWLEDGMENTS.....................................................................2
2 OVERALL DESCRIPTION............................................................................................... 3
2.1 PRODUCT OVERVIEW................................................................................................... 3
2.2 PRODUCT FUNCTIONALITY........................................................................................... 3
2.3 DESIGN AND IMPLEMENTATION CONSTRAINTS............................................................3
2.4 ASSUMPTIONS AND DEPENDENCIES............................................................................4
3 SPECIFIC REQUIREMENTS........................................................................................... 5
3.1 EXTERNAL INTERFACE REQUIREMENTS....................................................................... 5
3.1.1 User Interfaces....................................................................................................... 5
3.1.2 Hardware Interfaces.............................................................................................. 6
3.1.3 Software Interfaces................................................................................................ 6
Version
Version Lead author Version Description Completion
Date
01 Teams member First version. 12/12/2024
Software Requirements Specification for <LM> Page 1
1 Introduction
Describes a software application designed to help students manage their academic
activities more effectively. The product allows students to easily access class schedules,
exam schedules, and study materials. It also includes academic alert features to help
keep students on track with their studies. Additionally, the product facilitates
communication by providing a messaging feature that allows students to conveniently
connect with teachers to ask questions and seek guidance on their assignments.
The product also includes functionalities specifically designed for teachers. Teachers
can view and manage study materials shared with students, ensuring efficient
organization and accessibility. They can also send academic alerts to students, helping
them stay informed and focused on their learning tasks. Additionally, the platform provides
a messaging feature, enabling convenient communication between teachers and students
for seamless interaction and support.
1.2 Product Scope
Schedule Management: Students can easily view their class schedules and exam
timetables, helping them stay organized and prepared.
Study Material Access: Students can access shared learning resources directly on
the platform, while teachers can manage and organize these materials efficiently.
Academic Alerts: Personalized alerts notify students about upcoming deadlines,
exams, or tasks, while teachers can send reminders to their students.
Communication Features: A built-in messaging system facilitates seamless
communication between students and teachers, enabling quick question-and-answer
exchanges.
1.3 Intended Audience and Document Overview
Audience
Students: Use the platform to access schedules, study materials, and communicate with
teachers.
Teachers: Manage and share content, send alerts, and interact with students efficiently.
Developers: Design, develop, and maintain the system to ensure smooth functionality.
Project Managers: Monitor product effectiveness and oversee improvement strategies.
Document Overview
This document includes:
Software Requirements Specification for <LM> Page 2
Product Overview (Section 2): Describes the purpose and scope of the platform.
Specific Requirements (Section 3): Details the functional aspects of the system.
Non-Functional Requirements (Section 4): Defines performance, scalability, and
other quality attributes.
Acknowledgments
We would like to thank you:
Lecturers, for guiding and contributing opinions throughout the project
implementation process.
Development team and stakeholders, for collaboration and effort in product
building.
Software Requirements Specification for <LM> Page 3
2 Overall Description
2.1 Product Overview
The product is a learning management platform designed to optimize the learning and
teaching process. The platform allows students to access study schedules, exam
schedules, and study materials, and receive reminder notifications to help them organize
better. Teachers can manage, share materials, send alerts, and communicate with
students through the built-in messaging system. By improving coordination and
organization, the product contributes to improving the efficiency and quality of education.
Learning Warning:
Send and receive reminders about assignments, tasks, and exams.
Communication System:
Built-in messaging for easy communication between students and teachers.
User Management:
Support to retrieve accounts, update records, and delegate permissions to students
and teachers.
2.3 Design and Implementation Constraints
Assumption:
The school will provide timely and accurate data, including class schedules,
exam schedules and study materials, in standard formats (e.g. Excel files).
Teachers and students will have equipment and a stable internet connection
to use the system effectively.
The system will serve academic purposes only and should not be extended
to financial or event management functions.
The school will organize training for teachers and students so that they can
use the features of the system effectively.
The system will rely on the school's IT infrastructure to deploy and maintain.
The project depends on external libraries such as:
Apache POI (for reading and writing data from Excel files).
Spring Boot and ReactJS (for backend and frontend development).
MySQL or other relational databases (for storing data).
Operating Environment:
The system depends on a secure hosting environment (e.g., AWS, Google
Cloud, or on-premises servers).
The project assumes compatibility with modern browsers (Chrome, Firefox,
Edge).
Risks if assumptions change:
If the school does not provide timely data or organize training, the
implementation and use of the system will be affected.
3 Specific Requirements
3.1 External Interface Requirements
The system's user interface will be designed to be simple, user-friendly, and easy to
use for both students and teachers. Here are the main interfaces of the project:
Login/Authentication Interface:
Allow users (teachers and students) to log in to the system with account
information.
There is a "Forgot Password" feature to recover information if needed.
Main Dashboard Interface:
Allow students and teachers to exchange information via messages in the system.
Admin Dashboard:
For administrators or teachers who manage student information and update course
information.
Frontend interface
Excel file via Apache POI to read/write data.
Messages and communication between students and teachers through secure APIs.
Add notifications and alerts through an automated notification system..
F4: Students can view the exam schedule, quick events, and events without having to do
it
The response time should be fast, with the control panel loading within 3 seconds
and the search function returning results in 2 seconds. The system must support at least
1,000 concurrent users without sacrificing performance, and be scalable to serve 5,000
users as needed. Processing of the uploaded Excel file must be completed in 10 seconds
with files up to 10 MB, and bulk notifications must be sent within 5 seconds. The app
needs to ensure 99.9% availability, sync data across devices within 5 seconds, and
upload, download, and share files within 3 seconds. The system must perform efficiently
with a memory limit of 256 MB per session and maintain a 99.5% request success rate. In
addition, the performance on mobile devices also needs to be up to the same standard as
the computer version
Safe:
- Data safety
Protection of personal information: Student and teacher data such as names,
emails, classes/exam schedules must be encrypted and stored securely to prevent
unauthorized access.
Prevent data leaks: Use security protocols such as HTTPS and encrypt data in
transit.
- System safety
Access: Only authenticated users (students, teachers) are allowed access to
functions that are appropriate for their role.
Protection from attacks: The application must be protected from common attacks
such as SQL Injection, XSS (Cross-Site Scripting), and brute-force attacks.
- Safety in communication
Message security: Student-teacher communications need to be encrypted to
prevent third parties from eavesdropping.
User authentication: Before sending or receiving messages, users must be
authenticated.
- Operational safety
Periodic data backups: Ensure that data is not lost in the event of a system crash.
Resiliency: The system can recover quickly after an incident to maintain
continuous service.
Software Requirements Specification for <LM> Page 10
- User safety
Clear notifications: Warn users about sensitive actions (such as deleting data or
sharing information).
Privacy Policy: Users should be informed about how the app collects, stores, and uses
their data.
Security:
- Authentication & Authorization
User authentication:
Use password encryption (bcrypt) to store passwords securely.
Offers two-factor authentication (2FA) for added security.
Decentralization of access:
Only teachers, students, or administrators are allowed to access
functions that are appropriate for their role.
Apply role-based access control (RBAC).
- Data Security
Data encryption:
Personal data, study materials, and message information are encrypted
when stored in a database (MySQL).
Use the HTTPS protocol to encrypt data in transit over a network.
Data Backup:
Periodically back up all system data for quick recovery in case of
problems.
- Communication Security
Communication encryption:
Use security protocols such as TLS/SSL to encrypt the entire
communication between the application and the server.
Message Safety:
The content of the exchange between teachers and students is
encrypted to prevent leaks.
- System Protection
Attack prevention:
Protect your application from common attacks such as SQL Injection,
XSS (Cross-Site Scripting), and CSRF (Cross-Site Request Forgery).
Limit the number of false logins to avoid brute-force attacks.
Web Application Firewall (WAF):
Use a firewall to monitor and block malicious behavior.
- Security Policies
User Privacy:
Comply with data privacy regulations (e.g., GDPR if applicable).
Users are informed and consented to before collecting personal data.
Internal Access Management:
Restrict employee access to sensitive data.
Reliability
The app must maintain 99.9% uptime to ensure it is always available to students and
teachers, even during peak times such as exams. This will be ensured by:
Use cloud infrastructure with a load balancing mechanism to handle traffic
spikes.
Implement an automated backup system to restore data when something goes
wrong.
Perform load capacity tests to identify and resolve potential bottlenecks.
Software needs to be easy to maintain and update as user needs change. This will be
done by:
Adopt modular programming, ensuring each component (e.g., calendar
management, messaging) works independently and is easy to upgrade.
Write clear and well-documented source code, with full notes to support
debugging and developing new features.
Use a version management system (e.g., Git) to systematically track and
manage changes.
4.3.3 Scalability
The application needs to expand easily as the number of users increases from hundreds
to thousands. This will be ensured by:
Distributed system architecture design, allowing horizontal expansion by adding
servers as needed.
Use NoSQL databases to efficiently handle large amounts of data.
4.3.4 Security
Software Requirements Specification for <LM> Page 12
The app must ensure data security to protect sensitive information, such as class
schedules and students' personal information. This will be done by:
Implement role-based access control to limit data access.
Encrypt all sensitive data with AES-256, both at rest and in transit.
Perform periodic security audits to detect and remediate vulnerabilities.
4.3.5 Adaptability
The software needs to adapt to future needs, such as integrating new technology (e.g., AI
tools for personalized learning suggestions). This will be ensured by:
Use API-based development to ensure compatibility with third-party tools.
Design a flexible, scalable database structure to add new data fields as
needed.
Create plug-in systems to add new features without modifying the main source
code.
5 Other Requirements
Database Requirements
The system must use a relational database (e.g., MySQL or PostgreSQL) to ensure data
consistency and integrity. The database schema should support multilingual data storage
to handle different character sets for international users.
Legal and Compliance Requirements
The application must comply with data privacy regulations, such as GDPR or local laws,
to protect user information. This includes providing clear terms of service and obtaining
user consent before collecting personal data.
Software Requirements Specification for <LM> Page 13
Team Pham Thai Dang Phuoc Tran Cong Nguyen Nguyen Kim
Members Sang Tan Phuong Quang Tam Nhat Tuyen
SRS X
Documentation
Proposal X X X X X
Form X
PowerPoint X X X X X
Figma X X X X X
Source Code X X
Total Percent 25% 25% 16% 17% 17%
Complete
Group Log:
Difficulties:
Because it is the first time to access the tools, it should:
Lack of Basic Knowledge: Not having a good understanding of how the tool works.
Language barrier: Tools that use unfamiliar language.
Installation Difficulties: Complex software configuration or downloads must be required.
Complex interface: Difficult to get used to the layout and functionality.
Lack of instructional documentation: There is no easy-to-understand supporting
documentation or video.
Benefit:
Develop new skills: Increase the ability to use modern tools.
Improve performance: Save time and effort in studying and working
Foster creativity: Support the development of new ideas with utility tools.
Teamwork and communication
Processes and frameworks
Problem Solving and Accountability
.