Introduction
Project Information
Introduction
In today's tech-savvy world, integrating technology into education has become more essential than ever To enhance math learning for high school students, we've developed an innovative Android application that allows users to store and access all essential math formulas directly on their smartphones Available in Vietnamese, this user-friendly app presents basic mathematical formulas with clear explanations and helpful visuals, making it easy for students to grasp complex concepts With this application, high school students can effortlessly find both simple and intricate formulas, streamlining their study process.
Current Situation
Mathematics is a crucial subject in today's education system, particularly for high school seniors who must master various formulas for their upcoming tests Students often gather information from diverse resources such as textbooks, notes, and online materials, frequently recording important formulas in their handbooks for effective study and review Furthermore, those preparing for university entrance exams need to consolidate three years' worth of knowledge to succeed.
Reliable sources are required as well as the time and effort that need to be put in.
Problem Definition
Below are the disadvantages of the current situation:
● Inconvenient to carry and keep a big number of books, notes and documents
● The lack of a reliable source for the formulas and the exercises
● Time consuming to search, summarize and categorize all the formulas and exercises
● Hard to study due to unorganized formulas
● Inconsistent information as books, notes and documents can be lost or damaged with time
Some information is written too long or in different languages.
Proposed Solution
We propose creating a mobile application called "Math Formulas" designed specifically for high school students This app aims to enhance their understanding of mathematical concepts, improve problem-solving abilities, and facilitate self-assessment through multiple-choice exams.
The system includes a web application (for admins) and a mobile app (for users) with following functions:
The web application offers comprehensive management tools for administrators, allowing them to efficiently create, edit, and delete chapters, lessons, solutions, exercises, and quizzes Additionally, administrators have the capability to release new versions of data, ensuring that the content remains up-to-date and relevant.
Discover our mobile app designed to enhance your math study experience by categorizing essential formulas in Geometry, Algebra, and Trigonometry, complete with illustrative examples for easier understanding Users can conveniently search for specific formulas and save their favorites for quick access, ensuring they have the most relevant information at hand Additionally, the app features a "Mathnote" function, allowing users to create personalized notebooks where they can add their own formulas and notes, making math study more tailored and effective.
The application enhances user convenience and efficiency by offering valuable tips and tricks for solving common math exercises With the "Math Formulas" feature, users can access quicker and more effective methods to tackle problems Additionally, each chapter includes multiple-choice assessments that provide instant feedback, allowing users to evaluate their knowledge and progress, and to plan their next steps in studying effectively.
The advantages of this platform include the ease of discovering math formulas without the need for books or an internet connection, making learning more accessible It enhances retention by providing examples alongside each formula, facilitating better understanding Users can also monitor their progress through multiple-choice examinations, allowing for effective self-assessment Additionally, improved communication between users and administrators through feedback mechanisms significantly enhances the overall user experience.
The application has several disadvantages, including its limited support for math formulas tailored only for high school students Additionally, it occupies a significant amount of memory since all data is stored in a local database for offline access Furthermore, the app is exclusively available for Android OS and features a Vietnamese user interface, which may restrict its usability for a wider audience.
Functional requirements
Function requirements of the system are listed as below:
● Manage data (lessons, solution, exercises, …)
● View lessons, solution, exercises by chapters
● Search for lessons by name
● Do quiz to check self-knowledge and studying progress
● Check for new version and data
Role and responsibility
No Full Name Role Position Contact
Hoàng Project Manager Supervisor hoangnt2@fpt.edu.vn
Anh Developer, Tester Leader anhnhse62165@fpt.edu.vn
3 Đõ Thiên Tứ Developer, Tester Member tudtse61817@fpt.edu.vn
4 Đôn Huỳnh Minh Đức Developer, Tester Member ducdhmse61568@fpt.edu.vn
5 Dương Gia Hòa Developer, Tester Member hoadgse61973@fpt.edu.vn
Software Project Management Plan
Problem Definition
● English: Mobile App for providing basic mathematics formulas for high school students
● Vietnamese: Sổ tay công thức toán học cho học sinh trung học phổ thông
● Abbreviation: MF (Math is Fun, Math Formulas)
Mathematics has been a fundamental subject since elementary school, but it becomes increasingly challenging with more complex formulas in high school Students often find it difficult to memorize and record these formulas, leading to frustration when they forget them As a result, they resort to sifting through textbooks and notebooks, which can be a redundant and ineffective study method.
- In addition, almost every student has smartphones since middle school, so we come up with an idea of making an application that provides basic mathematics formulas for them
Below are the problems encountered in this project:
● The scope of this project is not simple to determine Some formulas may affect the project The team has to decide formulas’ scope correctly
● Team members can have a conflict in meeting schedule because of sick or class and work schedule, etc
● Some team members are new to the techniques used in the project The team needs an amount of time to get familiar with those techniques
● Most of the way to solve Geometry math is from theorem, polygon’s properties, so it took more time to synthesize
● There are already some good formulas applications in the market
● Difficult to collect large amount of data and classify into groups
- The web application will have two subsystems: o A web service for responding mobile application’ requests o A web application for administrators In detail, the web application provides the following features:
▪ Administrators are able to manage math data They can add/edit/delete new formulas, lessons, chapters … to/from database
▪ Administrators are able to broadcast the latest database to the end-user mobile app
- Users can view formulas/lessons/exercises/solutions by chapters
- Users can create their own formula/note
- Users can track study progress
- Users can do quiz to check self-knowledge
1.3.3 Boundaries of the System 1.3.4 Future Plans
Develop the application around management processes to enable future enhancements using a pre-designed database Ensure data and statuses remain consistent, manage and extract information from files using established templates, and export data as Excel files for related systems in accordance with specified training process templates.
Internet Connection Cable, Wi-Fi (4 Mbps) Cable, Wi-Fi (8 Mbps)
Computer Processor Intel® Xeon ® 1.4GHz Intel® Xeon ® Quad Core
Computer Memory 2GB RAM 4GB or more
Table 2: Hardware Requirements for Server
Operating System Android 5.0 Lollipop Android 5.0 Lollipop or above Processor CPU dual core 1.4 GHz CPU Quad core 2.0 GHz
Computer Memory 1GB RAM 1GB RAM or more
Table 3: Hardware Requirement for Mobile
System Windows 10 Operating system for development
Environment Java EE 6, Android SDK
APIs level 21 or above Specification for developing web and mobile application Modeling tool StarUML 2.8.1 Tool for modeling web and mobile application diagrams IDE Eclipse Jee Oxygen,
Android Studio Programming tools DBMS
MySQL 5.7.21, MySQL Workbench 6.3.9 CE, SQLite
Used to create & manage the database for system
Source control Github Desktop 1.5.0 Used for source version control
Web browser Chrome 70 or above Testing browser
Project Organization
This project is developed using the Scrum model – part of an agile framework for Software development project Our team chooses the Scrum model because of the following reasons:
Our team consists of just four members, and we follow a vertical task assignment approach that encompasses all stages from design to coding, testing, and implementation For small to medium-sized projects, Scrum is the ideal model to ensure efficient workflow and collaboration.
● In the project, there are many new technologies that need to be learned With the Scrum model, the team can learn and develop in parallel to meet the deadline
● The product owner can change the requirement or extend scope The team will adapt to change better
● Team members always think about new ideas while doing other functions, so waterfall model cannot be applied here
Reference: http://www.techtammina.com/blog/software-development/how-is-software- application-development-process-executed-by-scrum-methodology/attachment/scrum- process-lifecycle-methodology/
The project is developed in Agile methodology, so the developing process has many iterations, each iteration includes several phases:
● Define Project Scope: Gathering and analyzing requirements from customer specify feasible functionalities of the project to reduce the risks/cost
● Design: Create project base structure depend on the requirements
● Construction: Implement, test & integrate system functionalities in sprint backlog This is the heart of Scrum model
● Release: Deliver complete system to the customer, training them how to use the system effectively
Maintenance: Ensure the system working stably, upgrade/fix the system if the customer needs
No Full name Role in Group Responsibilities
1 Nguyễn Thế Hoàng Project Manager ● Specify user requirement
● Give out technique and business analysis support
2 Nguyễn Hoàng Anh Team Leader,
3 Đỗ Thiên Tứ Team Member,
4 Đôn Huỳnh Minh Đức Team Member,
5 Dương Gia Hòa Team Member,
Project Management Plan
Phase Story Task ID Task
1.2 Introduction 1.3 Current situation 1.4 Problem definition 1.5 Proposed solution
1.6 Functional requirements 1.7 Role and responsibility
Software project management plan 2.1 Problem definition
2.3 Project management plan 2.4 Coding convention
2 Software requirement specification 3.1 User requirement specification
3.2 External interface requirement 3.3 System overview use case
3.5 Software system attribute 3.6 Conceptual diagram
3 Software design description 4.1 Design overview
Software design diagram 5.1 Component diagram
7.2 View chapters 7.3 View lessons 7.4 View solution 7.5 View exercises
Algorithms 10.1 Update version algorithm 10.2 Do quiz algorithm Software User’s Manual 11.1 Installation guide
ID Feature User story Sprint
1 Manage lesson As an administrator, I want to add/edit/delete/get lesson information in order to add new or modify/remove obsolete lesson, increase data accuracy and update
2 Manage chapter As an administrator, I want to add/edit/delete/get chapter information in order to add new or modify/remove obsolete chapter, increase data accuracy and update
As an administrator, I want to add/edit/delete/get solution information in order to help user easier to learn the lesson by many solutions
As an administrator, I want to add/edit/delete/get exercise information so that users can understand the lesson, forms more effectively
5 Manage quiz As an administrator, I want to add/edit/delete/get quiz information so that users can check their knowledge with tests
As a handler, it automatically updates new data every time user opens the application
As a user, I want to get summary knowledge of each lesson such as main theory, formulas, … to improve my knowledge
8 Select grade As a user, all math knowledge is classified into many grades in order to get data easier
9 Get solution As a user, a lesson with many solutions help so that I can learn math and remember formulas easier and faster
As a user, I want every lesson containing exercises classified by solution so that I can apply the lesson to real situation
11 Do quiz As a user, I want to do tests with instant review after learning lessons in order to check my knowledge
As a user, I want to track my studying progress in order to have suitable plan for learning math
13 Search lesson As a user, I want to search for lesson so that I can find the lesson without checking it in every chapter
14 Favorite lesson As a user, I want to add a lesson to my favorite list so that I can save important lessons and get them later without search for them again
15 Note As a user, I want to save my own formulas in order to remember it
Al meeting minutes are placed on Google drive Link below: https://drive.google.com/drive/folders/19wAGdjKzD9aVQif1y8pKGis o5wUseEGc?usp=drive_open
Coding convention
- File Names – Reference: http://www.oracle.com/technetwork/java/javase/documentation/cod econventions-137760.html
- Declarations – Reference: http://www.oracle.com/technetwork/java/javase/documentation/cod econventions-141270.html
- Statements – Reference: http://www.oracle.com/technetwork/java/javase/documentation/cod econventions-142311.html
- White Space – reference: http://www.oracle.com/technetwork/java/javase/documentation/cod econventions-141388.html
- Naming conventions – reference: http://www.oracle.com/technetwork/java/javase/documentation/cod econventions-135099.html
- Programming Practices – reference: http://www.oracle.com/technetwork/java/javase/documentation/cod econventions-137265.html
- Coding conventions - references: https://source.android.com/setup/contribute/code-style
Software Requirement Specification
User Requirement Specification
Math Formulas is an educational application designed for high school students, offering both basic and advanced math formulas along with essential knowledge Users can conveniently access information through organized classifications and summaries, and they can enhance their understanding by taking quizzes for self-assessment The app features two primary roles: Administrator and User, ensuring a structured experience for all.
Users are restricted from accessing system data; however, they can search for high school math knowledge, access detailed lessons and formulas, and obtain solutions or practice exercises related to various math types.
- Add, delete formulas to favorite list
- Add, edit, delete user’s notes
Administrators, who are logged-in users with the highest level of access, are responsible for managing system data, including chapters, lessons, formulas, tips, practice exercises, and quiz questions They also have the authority to determine the release schedule for new versions and to review user feedback regarding the system.
Administrators are able to do all the below functions:
- Manage quiz question and answers
Handler is a role that runs function in the background Handler can do the following functions:
- Check version and update data (mobile application)
System Requirement Specification
The user interface use English in Web application and Vietnamese in Mobile application
- Operating system: Windows 10, Android 5.0 Lollipop
- Environment: Java EE 8, Android SDK APIs level 21 or above
- IDE: Eclipse Oxygen.1a Release (4.7.1a), Android Studio 3.2.0, Visual Studio Code 1.29.1
- DBMS: MySQL 5.7.20, MySQL Workbench 6.3.9 CE
- Web browser: Chrome 70 or above
Use HTTP protocol 1.1 for communication between:
- Web application and web server
- Mobile application and web server
Figure 2: System overview Use Case Diagram
Figure 4: Get lesson detail Use Case Diagram
Use Case No User_01 Use Case Version 2.0
Use Case Name Get lesson detail
- This use case indicates that users can get details of specific lesson (such as formulas, theorems, …)
- Help user easily get summary knowledge classified by lesson
- User sends get lesson detail command
- Success: Screen contains lesson title and content displayed
Step Actor Action System Response
1 User sends get lesson detail command
Lesson detail screen is displayed, lesson content is displayed as HTML in web view:
- Math symbols will be displayed in Math Markup Language (MathML)
- Images are displayed whose source is base64 encoding
- Other contents displayed as HTML
1 The application cannot connect to database Show error message “Có lỗi xảy ra Vui lòng thử lại!” to user
Relationships: extend to Get Solutions (send get solutions command), extend to Add
Favorite Lesson (send add favorite lesson command), extend to Remove Favorite
Lesson (send remove favorite lesson command)
- User gets the lesson detail as HTML in web view
- Lesson detail is displayed with information: o Lesson title o Lesson content
Table 10: Get lesson detail Use Case Specification
Figure 5: Get practice exercise Use Case Diagram
Use Case No User_02 Use Case Version 2.0
Use Case Name Get practice exercises
- This use case indicates that users can get practice exercises of a lesson
- Help users apply theory and formulas in the lesson to practice exercises
- User sends get practice exercises command
- Solution must have at least one exercise
- Success: Practice exercises classified by group of forms will be displayed (if any)
Step Actor Action System Response
1 User sends get practice exercises command
Practice exercises are displayed as HTML in web view:
- Math symbols will be displayed in Math Markup Language (MathML)
- Images are displayed whose source is base64 encoding
- Other contents are displayed as HTML
Step Actor Action System Response
1 User sends get practice exercises command The lesson contains no solution
1 The application cannot connect to database Show error message “Có lỗi xảy ra Vui lòng thử lại!” to user
- User gets practice exercises as list classified by solution, the content is displayed as HTML in web view
- The lesson must have at least one exercise to be displayed
- An exercise is displayed with information: o Exercise topic o Exercise answer
Table 11: Get practice exercise Use Case Specification
Figure 6: Get solutions Use Case Diagram
Use Case No User_03 Use Case Version 2.0
Use Case Name Get solutions
- This use case indicates that users can get solutions of a lesson
- Help users solve some typical type of a lesson
- User sends get solution command
- The lesson must have at least one solution
- Success: All solutions of the lesson is displayed
Step Actor Action System Response
1 User sends get solutions command Lesson detail screen contains solutions , their content are displayed as HTML in web view:
- Math symbols will be displayed in Math Markup Language (MathML)
- Images are displayed whose source is base64 encoding
- Other contents displayed as HTML
Step Actor Action System Response
1 User sends get solutions command The lesson contains no solution
1 The application cannot connect to database Show error message “Có lỗi xảy ra Vui lòng thử lại!” to user
Relationships: Extend to Get Practice Exercises (send get practice exercises command)
- User gets the solutions as a list, the content is displayed as HTML in web view
- The lesson must have at least one solution to be displayed
- A solution is displayed with information: o Solution title o Solution content o Number of exercises of the solution
Table 12: Get solutions Use Case Specification
Figure 7: Search lesson Use Case Diagram
Use Case No User_04 Use Case Version 2.0
Use Case Name Search lesson
- This use case indicates that users can easily get the lesson they need by searching by lesson title
- Make it easier for users to find what they need without having to check in every single chapter
- User sends search lesson command
- Success: A list of search results will be displayed (if any)
Step Actor Action System Response
1 User sends get list of search results command “Kết quả tìm kiếm” screen contains all matched results as list displayed
Step Actor Action System Response
1 User sends get a result detail command “Kết quả tìm kiếm” screen with no result displayed
Step Actor Action System Response
1 User lets the search field empty and sends get list of results command
1 The application cannot connect to database Show error message “Có lỗi xảy ra Vui lòng thử lại!” to user
Relationships: extend to Get Lesson Detail (send get lesson detail command), extend to Add Favorite Lesson (send add favorite lesson command), extend to Remove
Favorite Lesson (send remove favorite lesson command), include Search By Lesson
- Search value must not be empty
When a user clicks the magnifier icon after entering a search term, the results will appear in a list format Conversely, if the user selects a lesson from the list, the details of the chosen lesson will be displayed on the screen.
Table 13: Search lesson Use Case Specification
Figure 8: Add favorite lesson Use Case Diagram
Use Case No User_05 Use Case Version 2.0
Use Case Name Search lesson
- This use case indicates that users can add a lesson to their favorite list
- Make it easier for users to save their necessary knowledge so they can watch it later without having to search again
- User sends add favorite lesson command
- The lesson must not be in favorite list
- Success: The lesson will be added to favorite list and display success message to user
Step Actor Action System Response
1 User sends add favorite lesson command - Heart icon color is changed
- A message announce that the lesson is added to favorite list successfully
1 The application cannot connect to database Show error message “Có lỗi xảy ra Vui lòng thử lại!” to user
- The lesson is not int the favorite list before user actions
- User adds lesson to favorite list
Table 14: Add favorite lesson Use Case Specification
Figure 9: Remove favorite lesson Use Case Diagram
Use Case No User_06 Use Case Version 2.0
- This use case indicates that users can remove a lesson from their favorite list
- Users may want to remove one from favorite list because they have finished the lesson and want to clean their list
- User sends remove favorite lesson command
- User must have at least one lesson in favorite list
- Success: The selected lesson will be removed from favorite list and display success message to user
Step Actor Action System Response
1 User sends remove favorite lesson command - The lesson will be disappeared from the favorite list
- A message announces that the lesson has been removed from favorite list successfully
1 The application cannot connect to database Show error message “Có lỗi xảy ra Vui lòng thử lại!” to user
- The lesson must be in the favorite list before user actions
- User can remove favorite lesson by many ways:
- Selects delete icon in favorite list screen
- Deselects heart icon of a lesson in chapter detail screen or lesson detail screen
Table 15: Remove favorite lesson Use Case Specification
Figure 10: Add note Use Case Diagram
Use Case No User_07 Use Case Version 2.0
Use Case Name Add note
- This use case indicates that users can add their own note
- Help users add notes of things they want to remember
- User sends add note command
- User’s device must connect to the Internet
- Success: User saved note successfully and success message is displayed
Step Actor Action System Response
1 User sends add note command
An input screen with keyboard appear for user to input the note they need, then they can click save after finished:
- Title field: free text input
2 User inputs all fields [Alternative 2]
3 User sends save new note command
A success message is displayed “Đã thêm ghi chú”
Step Actor Action System Response
1 User sends add note command without device’s internet connection
A message will be displayed :”Cần có kết nối internet để sử dụng tính năng này”
Step Actor Action System Response
1 User lets one of the fields empty Show message to user “Vui lòng nhập đầy đủ tất cả các ô”
1 The connection to server is not available Show error message to user “Hệ thống hiện không khả dụng Vui lòng thử lại!”
Relationships: Include Check internet connection
- If the internet is disconnected after math keyboard is displayed user can still save it
- All fields are required before saving: o Title: free text input o Note content: MathML
Table 16: Add note Use Case Specification
Figure 11: Edit note Use Case Diagram
Use Case No User_08 Use Case Version 2.0
Use Case Name Edit note
- This use case indicates that users can edit their created notes
- Help users edit their own notes
- User sends edit note command
- User’s device must connect to the Internet
- Success: The edited note is saved and show success message to user
Step Actor Action System Response
1 User sends edit note command An input screen with keyboard appear for user to input the note they need, then they can click save after finished:
- Title field: free text input
3 User sends save edit note command A success message is displayed “Đã lưu thay đổi”
Step Actor Action System Response
1 User sends edit note command without device’s internet connection
- Display note content in web view without the ability to edit
- User can only edits the title field
Step Actor Action System Response
1 User lets one of the fields empty Show message to user “Vui lòng nhập đầy đủ tất cả các ô”
1 The connection to server is not available Show error message to user “Hệ thống hiện không khả dụng Vui lòng thử lại!”
Relationships: Include Check internet connection
- If the internet is disconnected after math keyboard is displayed user can still save it
When the internet connection is unavailable, users can only modify the note title, while the content will be shown in MathML format in the web view.
- All fields are required before saving: o Title: free text input o Note content: MathML
Table 17: Edit note Use Case Specification
Figure 12: Delete note Use Case Diagram
Use Case No User _09 Use Case Version 2.0
Use Case Name Delete Note
- This use case indicates that users can delete their notes
- To help user deletes the note they no longer needed
- User sends delete note command
- Success: The note is deleted from note list and display success message to user
Step Actor Action System Response
1 User sends delete note command - The note is deleted from note list displayed to user
- Success message is displayed to user “Đã xoá ghi chú”
1 The application cannot connect to database Show error message to user “Có lỗi xảy ra Vui lòng thử lại!”
- Help User deletes useless notes
Table 18: Delete note Use Case Specification
Figure 13: Do quiz Use Case Diagram
Use Case No User _10 Use Case Version 2.0
Use Case Name Do Quiz
- This use case indicates that user can do quiz
- To help user do quiz to review their lesson, to track study progress
- User sends do quiz command
- The chapter has at least one available quiz
- Success: User can review the quiz after finished it
Step Actor Action System Response
1 User sends do quiz command Quiz screen is displayed with:
- Buttons which each of them represents for each answer
2 User sends choose answer command Move to next question
Step Actor Action System Response
1 User sends choose answer command All questions are finished, review quiz screen is displayed with information:
- The answers of every quiz question
○ The correct answer is displayed with green color
○ If user’s answer is incorrect, the answer is displayed with red color
Step Actor Action System Response
1 User sends get chapter detail command Quiz icon is invisible
1 The application cannot connect to database Show error message to user “Có lỗi xảy ra Vui lòng thử lại!”
Relationships: Extend to Reset Chapter Progress (send reset chapter progress command), extend to Reset unfinished quiz (send reset unfinished quiz command)
- The chapter must have at least one lesson containing quiz question so that the user can access “do quiz” function (quiz icon is visible to user)
- User can review the quiz after finished it
Table 19: Do quiz Use Case Specification
Figure 14: Get chapter list Use Case Diagram
Use Case No User _11 Use Case Version 2.0
Use Case Name Get chapter list
- This use case indicates that users can get list of chapters (divided by grade, subject)
- Help users view lesson divided by chapter
- User sends get chapter list command
- Success: list of chapters will be displayed
Step Actor Action System Response
1 User sends get chapter list command - Screen contains tabs which represents for every subject displayed
- Each tab contains list of chapters
1 The application cannot connect to database Show error message to user “Có lỗi xảy ra Vui lòng thử lại!”
Relationships: extend to Select subject (sends select subject command), include
- Users get the list of chapters classified by grade and subject
Table 20: Get chapter list Use Case Specification
Figure 15: Reset chapter progress Use Case Diagram
Use Case No User _12 Use Case Version 2.0
Use Case Name Reset chapter progress
- This use case indicates that user can reset their studying progress
- Help user reset the chapter progress and are able to re do the quizzes
- User sends reset chapter progress command
- All the quizzes in the chapter must be finished
- Success: The chapter progress is reset to 0%
Step Actor Action System Response
1 User sends do quiz command An alert dialog ask user to reset the chapter progress or not
2 User sends reset chapter progress command - The chapter progress, all quizzes status and score are reset
- Go to do quiz screen from the first quiz
Step Actor Action System Response
1 User sends not reset chapter command The alert dialog disappears and nothing happens
1 The application cannot connect to database Show error message to user “Có lỗi xảy ra Vui lòng thử lại!”
- The chapter must have at least one lesson containing quiz question so that the user can access “do quiz” function (quiz icon is visible to user)
- All the quizzes in the chapter have already been finished
- After user selects quiz icon: o If the chapter has no more unfinished quiz, an alert dialog ask user to reset the chapter progress or not
▪ If user selects “CÓ” button, the chapter progress, quiz score, lesson and question status are reset
▪ If user selects “KHÔNG” button, the dialog disappears and nothing happens
Table 21: Reset chapter progress Use Case Specification
Figure 16: Reset unfinished quiz Use Case Diagram
Use Case No User _13 Use Case Version 2.0
Use Case Name Reset unfinished quiz
- This use case indicates that user can reset or continue doing previous undone quiz
- User is able to reset or continue doing previous undone quiz
- User sends reset unfinished quiz command
- The next quiz is unfinished
- Number of unanswered questions is less than number of all questions of the quiz
- Success: The quiz is restarted or continue from the first unfinished question
Step Actor Action System Response
1 User sends do quiz command An alert dialog ask user to continue the quiz or not
2 User sends continue doing quiz command Go to do quiz screen from the first unanswered question
Step Actor Action System Response
1 User sends reset quiz command - All user choices of the selected quiz are deleted and reset question status
- Go to do quiz screen from the first question of next quiz
1 The application cannot connect to database Show error message to user “Có lỗi xảy ra Vui lòng thử lại!”
- The chapter must have at least one lesson containing quiz question so that the user can access “do quiz” feature (quiz icon is visible to user)
- The previous quiz is incomplete
- After user selects quiz icon: o If the previous quiz is not finished by user, an alert dialog ask user to continue the quiz or not
▪ If user selects “TIẾP TỤC” button, go to do quiz screen from the first unanswered question
When the user clicks the "BẮT ĐẦU LẠI" button, all previous quiz selections will be cleared, the status of the questions will be reset, and the user will be directed back to the quiz screen, starting from the first question.
Table 22: Reset unfinished quiz Use Case Specification
Figure 17: Select grade Use Case Diagram
Use Case No User _14 Use Case Version 2.0
Use Case Name Select grade
- Users are able to choose the suitable grade
- Users only have to choose the grade once and the application will remembered for the next time opening the application
- User sends select grade command
- Success: Chapter list view of the chosen grade is displayed
Step Actor Action System Response
1 User sends go to select grade view command Choosing grade screen is displayed:
- Each grade contains text view which shows the number of its chapters
2 User sends select grade and command Chapter list view of the selected grade is displayed
1 The application cannot connect to database Show error message to user “Có lỗi xảy ra Vui lòng thử lại!”
- The grade view is displayed when user selects “Chọn lớp” in navigation view or user opens the application for the first time
- After the first time user selects grade, list of chapters of the grade which user selected the most recently will be displayed
Table 23: Select grade User Specification
Figure 18: Administrator Overview Use Case
Figure 19: Add chapter Use Case Diagram
Use Case No Admin_01 Use Case Version 2.0
User Case Name Add Chapter
- This use case indicates that administrators are able to add new chapter
- Administrator sends add new chapter command
- Success: The page is reload
Step Actor Action System Response
1 Administrator sends add chapter command Chapter table is displayed with information:
- Chapter name: free text input, required, max length
- Subject of chapter: select one of the options, required
- Grade of chapter: select one of the options, required
- Version of chapter: not editable
3 Administrator sends save new chapter command Show success message and the page is reloaded
1 Administrator does not input the required field The page is reloaded and the chapter will not be added to the system
1 The chapter is existed in system data The page is reloaded and the chapter will not be added to the system
- Administrator must input all required information before saving
- A chapter is considered to be duplicated when it has the same name, grade and subject with a chapter in system
- Administrator can add new chapter directly on the table
Table 24: Add chapter Use Case Specification
Figure 20: Edit chapter Use Case Diagram
Use Case No Admin_02 Use Case Version 2.0
User Case Name Edit Chapter
- This use case indicates that administrators can edit chapter information
- Increase the accuracy of system data
- Administrator sends edit chapter command
- Successfully logged into the system
- Success: The page is reloaded
Step Actor Action System Response
1 Administrator sends edit chapter command Chapter table is displayed with information:
- Chapter name: free text input, required, max length
- Subject of chapter: select one of the options, required
- Grade of chapter: select one of the options, required
- Version of chapter: not editable
3 Administrator sends save edit chapter command Show success message and reload the page
1 The system cannot find the chapter id The page is reloaded and the chapter will not be modified
1 Administrator does not input the required field The page is reloaded and the chapter will not be modified
1 The chapter is existed in system data The page is reloaded and the chapter will not be modified
Relationships: Extend to Edit Chapter Image (send edit chapter image command)
- Administrator must input all required information before saving
- A chapter is considered to be duplicated when it has the same name, grade and subject with a chapter in system
- Administrator can edit chapter directly on the table
Table 25: Edit chapter Use Case Specification
Figure 21: Delete chapter Use Case Diagram
Use Case No Admin_03 Use Case Version 2.0
User Case Name Delete Chapter
- This use case indicates that administrators can delete chapter
- Delete chapter which is no longer correct at that time
- Administrator sends delete chapter command
- Successfully logged into the system
- Success: The page is reloaded
Step Actor Action System Response
1 Administrator sends delete chapter command
Displays confirm dialog: “Are you sure you want to delete this chapter?”
2 Administrator sends confirm delete chapter command
Step Actor Action System Response
- The chapter must still be existed in the system
Table 26: Delete chapter Use Case Specification
Figure 22: Add lesson Use Case Diagram
Use Case No Admin_04 Use Case Version 2.0
User Case Name Add Lesson
- This use case indicates administrators can add new lesson
- Administrator sends add lesson command
- Successfully logged into the system
- Success: Go to lesson list view
Step Actor Action System Response
1 Administrator sends add lesson command Add new lesson screen is displayed with information:
- Title: free text input, required, max length 100
- Content: free text, math symbols and images
3 Administrator sends save new lesson command
Go to lesson list view
Step Actor Action System Response
1 Administrator does not input one of the field Show error message
- Administrator must input all required information before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Lesson content will be saved as HTML
Figure 23: Edit lesson Use Case Diagram
Use Case No Admin_05 Use Case Version 2.0
User Case Name Edit Lesson
- This use case indicates that administrators can edit lesson
- Increase the accuracy of system data
- Administrator sends edit lesson command
- Successfully logged into the system
- Success: Go to lesson list view
Step Actor Action System Response
1 Administrator sends edit lesson command Edit lesson screen is displayed with information:
- Title: free text input, required, max length 100
- Content: free text, math symbols and images
3 Administrator sends save edit lesson command Go to lesson list view
1 Administrator does not input one of the field Show error message
- Administrator must input all required information before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
Table 28: Edit lesson Use Case Specification
Figure 24: Delete lesson Use Case Diagram
Use Case No Admin_06 Use Case Version 2.0
User Case Name Delete Lesson
- This use case indicates that administrators can delete lesson
- Delete lesson which is no longer correct at that time
- Administrator sends delete lesson command
- Successfully logged into the system
- Success: Go to lesson list view
Step Actor Action System Response
1 Administrator sends delete lesson command
Display confirm dialog: “Are you sure you want to delete this lesson?”
2 Administrator sends confirm delete lesson command
Go to lesson list view
Step Actor Action System Response
1 Administrator cancels delete lesson command
- The lesson must still be existed in the system
Table 29: Delete lesson Use Case Specification
Figure 25: Add solution Use Case Diagram
Use Case No Admin_07 Use Case Version 2.0
User Case Name Add solution
- This use case indicates that administrators can add new solution
- Administrator sends add new solution command
- Successfully logged into the system
- Success: Go to solution list view
Step Actor Action System Response
1 Administrator sends add solution command
Add new solution screen is displayed with information:
- Title: free text input, required, max length 100
- Content: free text, math symbols and images
3 Administrator sends save new solution command Go to solution list view
Step Actor Action System Response
1 Administrator does not input one of the field
- Administrator must input all required information before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Solution content will be saved as HTML
Table 30: Add solution Use Case Specification
Figure 26: Edit solution Use Case Diagram
Use Case No Admin_08 Use Case Version 2.0
User Case Name Edit solution
- This use case indicates that administrators can edit solution
- Increase the accuracy of the system data
- Administrator sends edit solution command
- Successfully logged into the system
- Success: Go to solution list view
Step Actor Action System Response
1 Administrator sends edit solution command Edit solution screen is displayed with information:
- Title: free text input, required, max length 100
- Content: free text, math symbols and images
3 Administrator sends save edit solution command
Go to solution list view
1 Administrator does not input one of the field Show error message
- Administrator must input all required information before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Solution content will be saved as HTML
Figure 27: Delete solution Use Case Diagram
Use Case No Admin_09 Use Case Version 2.0
User Case Name Delete solution
- This use case indicates that administrators can delete solution
- Delete solution which is no longer correct at that time
- Administrator sends delete solution command
- Successfully logged into the system
- Success: Go to solution list view
Step Actor Action System Response
1 Administrator sends delete solution command
Display confirm dialog: “Are you sure you want to delete this solution?”
2 Administrator sends confirm delete solution command
Go to solution list view
Step Actor Action System Response
1 Administrator cancels delete solution command
- The exercise must still be existed in the system
Table 32: Delete solution Use Case Specification
Figure 28: Add Exercise Use Case Diagram
Use Case No Admin_10 Use Case Version 2.0
Use Case Name Add exercise
- This use case indicates that administrators can add new exercise
- Actor sends add new exercise command
- Successfully logged into the system
- Success: Go to exercise list view
Step Actor Action System Response
1 Administrator sends add exercise command
Add new exercise screen is displayed with information:
- Problem: free text and math symbols
- Answer: free text, math symbols and images
3 Administrator sends save new exercise command Go to exercise list view
Step Actor Action System Response
1 Administrator does not input one of the field
- Administrator must input all required information before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Exercise content will be saved as HTML
Figure 29: Edit Exercise Use Case Diagram
Use Case No Admin_11 Use Case Version 2.0
Use Case Name Edit exercise
- This use case indicates that administrators can edit exercise
- Increase the accuracy of the system data
- Administrator sends edit exercise command
- Successfully logged into the system
- Success: Go to exercise list view
Step Actor Action System Response
1 Administrator sends edit exercise command Edit exercise screen is displayed with information:
- Problem: free text and math symbols
- Answer: free text, math symbols and images
3 Administrator sends save edit exercise command Go to exercise list view
1 Administrator does not input one of the field Show error message
- Administrator must input all required information before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Exercise content will be saved as HTML
Table 34: Edit Exercise Use Case Specification
Figure 30: Delete Exercise Use Case Diagram
Use Case No Admin_12 Use Case Version 2.0
Use Case Name Delete exercise
- This use case indicates that administrators can delete exercise
- Delete solution which is no longer correct at that time
- Administrator sends delete exercise command
- Successfully logged into the system
- Success: Go to exercise list view
Step Actor Action System Response
1 Administrator sends delete exercise command
Display confirm dialog: “Are you sure you want to delete this exercise?”
2 Administrator sends confirm delete exercise command
Go to exercise list view
Step Actor Action System Response
1 Administrator cancels delete exercise command
- The exercise must still be existed in the system
Table 35: Delete Exercise Use Case Specification
Figure 31: Add Quiz Question Use Case Diagram
Use Case No Admin_13 Use Case Version 2.0
Use Case Name Add quiz question
- This use case indicates that administrators can add new quiz question
- Actor sends add new quiz question command
- Successfully logged into the system
- Success: Go to quiz question list view
Step Actor Action System Response
1 Administrator sends edit quiz question command
Add new question screen is displayed with information:
- Question: free text, math symbols and images
- Answer 1, answer 2, answer 3, answer 4: free text and math symbols
- Next to each answer field is a tick with gray color
3 Administrator click the tick next to every answer field System changes color of the button to green to mark as correct answer
4 Administrator sends save edit quiz question command
Go to quiz question list view
1 Administrator does not input one of the fields Show error message
1 Administrator does not set correct answer for the question Show error message “Please choose at least one correct answer”
- Administrator must input all required information and set at least one correct answer before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Quiz question and its answers content will be saved as HTML
Table 36: Add Quiz Question Use Case Specification
Figure 32: Edit Quiz Question Use Case Diagram
Use Case No Admin_14 Use Case Version 2.0
Use Case Name Edit quiz question and answers
- This use case indicates that the administrators can edit quiz question
- Increase the accuracy for system data
- Administrator sends edit quiz question command
- Successfully logged into the system
- Success: Go to exercise list view
Step Actor Action System Response
1 Administrator sends add quiz question command
Add new question screen is displayed with information:
- Question: free text, math symbols and images
- Answer 1, answer 2, answer 3, answer 4: free text and math symbols
- Next to each answer field is a tick with gray color
3 Administrator click the tick next to every answer field System changes color of the button to green, mark as correct answer
4 Administrator sends save new quiz question command
Go to quiz question list view
1 Administrator does not input one of the fields Show error message
1 Administrator does not set correct answer for the question Show error message “Please choose at least one correct answer”
- Administrator must input all required information and set at least one correct answer before saving
- If the administrator wants to input math symbols, the internet connection must be available to use the math keyboard
- Quiz question and its answers content will be saved as HTML
Table 37: Edit Quiz Question Use Case Specification
Figure 33: Delete Quiz Question Use Case Diagram
Use Case No Admin_15 Use Case Version 2.0
Use Case Name Delete quiz question
- This use case indicates that administrators can delete exercise
- Delete solution which is no longer correct at that time
- Administrator sends delete quiz question command
- Successfully logged into the system
- Success: Go to quiz question list view
Step Actor Action System Response
1 Administrator sends delete quiz question command
Display confirm dialog: “Are you sure you want to delete this question?”
2 Administrator sends confirm delete question command
Go to quiz question list view
Step Actor Action System Response
1 Administrator cancels delete quiz question command
- The question must still be existed in the system
Table 38: Delete Quiz Question Use Case Specification
Figure 34: Release new version Use Case Diagram
Use Case No Admin_16 Use Case Version 2.0
Use Case Name Release new version
- This use case indicates that administrators can make a decision to release changes on data to user’s application
- Administrators are able to bring the latest and the most accurate knowledge to users
- Actor sends release new version command
- Successfully logged into the system
- Success: Go to version list view
Step Actor Action System Response
1 Administrator sends add new version command
Release new version screen is displayed with information:
- Version name: free text input, max length 45, required
2 Administrator sends save new version command
Go to version list view
Step Actor Action System Response
1 Administrator does not input one of the fields Show error message
Relationships: Include Check Internet Connection
- After new version is released successfully, all changes on data are available to mobile application’s for updating
- When administrator sends save new version command, all data which has version id equals 0 will be set as the latest version
Table 39: Release new version Use Case Specification
Figure 35: Overview Use case
Figure 36: Check version Use Case Diagram
Use Case No Handler _01 Use Case Version 2.0
Use Case Name Check version
- This use case indicates that the mobile application will automatically update if any new versions are available to update
- To improve user experience, update new math knowledge, edit/remove wrong data if needed
- Mobile application sends check version command
- The internet connection of user’s device is available
- Success: If there is any new version, the application will automatically update
- Fail: The application cannot connect to server
Step Actor Action System Response
1 The application sends check version command - Display progress bar and status
- Save new version(s) to database
2 The application sends update new data command - Display progress bar and status
- Save new data to database
Step Actor Action System Response
1 The application sends check version command Mobile application is up to date
- Display progress bar and status
- Status changes to “Ứng dụng đã được cập nhật”
1 The application cannot connect to server Show error message
Relationships: Extend to Update new data (send update new data command), include Check Internet Connection
- Every time user opens the mobile application, if the internet connection is available, the application will automatically send request to server to check request
○ If the response is empty, display message to user “Ứng dụng đã được cập nhật”
○ Otherwise, the application will save new versions to database and send request to server to get new data
Table 40: Check version Use Case Specification
Software System Attribute
- Website is simple and easy to use
- Website can be used with under 5 minutes to get familiar with the interface
- Website has an overall data tree for easier data-management
- User can see new changes that have been made recently
- Application auto updates version in order to keep all data up-to- date
- User can preview the content before actually see all content and do exercise so user can easily choose the correct content they want to see
- User can choose their favorite lesson and view them later
- User can enter their own notes
- User can keep track of their study with the quiz system of the application
● Mobile application does not require any user’s information so users do not have to worry about risks such as information leak
● Mobile application can work without internet connection
● Web application is only allowed to access after logging into the system
● Mobile application does not require any user information, except for email when feedback
● Web application and mobile application are all divided into separate modules for easy maintenance
● Web application can be run on Chrome browser version 42 or later
● Mobile application require device with Android version 5 or later
● On mobile application, when a lesson is selected, all formulas, math symbols and images will be displayed in 3 seconds max
● Requests from mobile application are responded less than 5 seconds from server at 15 Mbps bandwidth speed
Conceptual Diagram
Figure 37: Web application Conceptual diagram
Entity Data Dictionary: describe all contents of all entities
Grade Math chapters is divided into separated grades, which contains Subject Math chapters is divided into separated subjects
Chapter Contains chapter name and image, created by administrator Lesson Contains lesson title, content (formulas, theory, …)
Solution Are some typical mathematical forms, contains solutions to solve math problems
Exercise Contain practice exercises and answers
Question Or quiz question, contains question thread, created by administrator
QuestionChoice Contain choices for quiz question and at least one is correct for each question, created by administrator
DeleteQuery Contain delete queries for data of mobile application database, generated after admin deleted items
Version Contain old and current version of data
User Contain user login information (username, password)
Table 41: Web Application Conceptual Entity Data Dictionary
Figure 38: Mobile Application Conceptual Diagram
Entity Data Dictionary: describe all contents of all entities
Grade Math chapters is divided into separated grades
Subject Math chapters is divided into separated subjects
Chapter Contains chapter name and image, created by administrator
Lesson Contains lesson title, content (formulas, theory, …), created by administrator
Solution Are some typical mathematical forms, contains tips and tricks to solve math problems, created by administrator
Exercise Contain practice exercises and answers, created by administrator
Question Or quiz question, contains question thread, created by administrator
QuestionChoice Contain choices for quiz question and at least one is correct for each question, created by administrator UserChoice Contain user’s choice of quiz question
Version Contain old and current version of data
Table 42: Mobile Application Conceptual Entity Data Dictionary