1. Trang chủ
  2. » Luận Văn - Báo Cáo

Air conditioning services application

186 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 186
Dung lượng 8,72 MB

Cấu trúc

  • A. Introduction (14)
    • 1. Project Information (14)
    • 2. Introduction (14)
    • 3. Current Situation (14)
    • 4. Problem Definition (14)
    • 5. Proposed Solution (15)
      • 5.1. Feature functions (15)
      • 5.2. Advantages and disadvantages (15)
    • 6. Functional Requirements (15)
    • 7. Roles and Responsibility (16)
  • B. Software Project Management Plan (17)
    • 1. Problem Definition (17)
      • 1.1. Name of this Capstone Project (17)
      • 1.2. Problem Abstract (17)
      • 1.3. Project Overview (17)
    • 2. Project organization (19)
      • 2.1. Software Process Model (19)
      • 2.2. Roles and responsibilities (20)
      • 2.3. Tools and Techniques (21)
    • 3. Project Management Plan (21)
      • 3.1. Software development lifecycle (21)
      • 3.2. Phase Detail (24)
      • 3.3. Task sheet (25)
      • 3.4. All Meeting Minutes (25)
    • 4. Coding Convention (25)
  • C. Software Requirement Specification (27)
    • 1. User Requirement Specification (27)
      • 1.1. Guest requirement (27)
      • 1.2. Customer requirement (27)
      • 1.3. Supplier requirement (27)
      • 1.4. Admin requirement (28)
    • 2. System Requirement Specification (28)
      • 2.1. External Interface Requirement (28)
      • 2.2. System Overview Use Case (28)
      • 2.3. List of Use Case (31)
    • 3. Software System Attribute (65)
      • 3.1. Usability (65)
      • 3.2. Reliability (65)
      • 3.3. Availability (65)
      • 3.4. Security (65)
      • 3.5. Maintainability (22)
      • 3.6. Portability (65)
      • 3.7. Performance (66)
    • 4. Conceptual Diagram (66)
  • D. Software Design Description (69)
    • 1. Design Overview (69)
    • 2. System Architecture Design (69)
      • 2.1. Web Application architecture description (69)
      • 2.2. Mobile Application architecture description (70)
    • 3. Component Diagram (71)
    • 4. Detailed Description (73)
      • 4.1. Class Diagram (73)
      • 4.2. Class Diagram Explanation (74)
      • 4.3. Interactive Diagram (84)
    • 5. Interface (99)
      • 5.1. Component Interface (99)
      • 5.2. Web application Design (102)
      • 5.3. Android application Design (117)
    • 6. Database Design (128)
      • 6.1. Entity relationship diagram (128)
      • 6.2. Data Dictionary (129)
    • 7. Algorithms (135)
      • 7.1. Find nearby service (135)
      • 7.2. Notification (136)
  • E. System Implementation & Test (138)
    • 1. Introduction (138)
      • 1.1. Overview (138)
      • 1.2. Test Approach (138)
    • 2. Database Relationship Diagram (138)
      • 2.1. Physical Diagram (138)
      • 2.2. Data Dictionary (140)
    • 3. Performance Measures (147)
      • 3.1. Web application page load speed (147)
      • 3.2. Mobile application API load speed (150)
    • 4. Test Plan (152)
      • 4.1. Features to be tested (152)
      • 4.2. Features not to be tested (152)
    • 5. System Testing Test Case (152)
      • 5.1. Communication Diagrams (152)
      • 5.2. Test cases (156)
  • F. Software User’s Manual (170)
    • 1. Installation Guide (170)
      • 1.1 Setting up environment at server side (170)
      • 1.2 Back-end Deployment Process (171)
    • 2. User Manual (172)
      • 2.1. Admin (172)
      • 2.2. Customer (174)
      • 2.3. Supplier (180)
  • G. Appendix (186)

Nội dung

Introduction

Project Information

 Project name: Air Conditioning Services Application

 Product Type: Website & Android Application

Introduction

In recent years, booking services have gained popularity among households as a convenient and cost-effective solution, allowing users to access services without incurring additional fees These services provide a valuable alternative for families seeking more leisure time while managing expenses However, many suppliers are facing challenges in developing an effective management system for booking services that meets customer needs and ensures ease of use.

ACSA is an innovative system designed to enable users in Vietnam to register as suppliers or easily find and book services tailored to their specific needs Our goal is to deliver a professional, reliable, and user-friendly booking service that encompasses essential features such as service management, contract management, and user management ACSA prioritizes an exceptional user experience with an attractive interface and streamlined business processes to ensure satisfaction for all users.

Current Situation

Many booking service applications, such as bTaskee, Okiaf, and Rada, are compatible with both Android and iOS platforms, offering features like service information, service lists, and route navigation However, these apps often lack crucial details such as supplier information and pricing, making it difficult for users to identify the nearest service providers and leading to prolonged wait times for services.

Problem Definition

Below are the advantages and disadvantages of applications related to booking services in the app store and website in Viet Nam:

- Provide users with more services: clean up the air-conditioning, water supply, repair of appliances, …

- Do not show suppliers near you

- No information about the price of the service

- No information about the supplier.

Proposed Solution

The application enables users to access supplier information and store evaluations, enhancing their service experience By leveraging GPS technology, users can search for services based on specific proximity, ensuring accurate location results Additionally, users have the option to provide feedback, which helps in updating their data on the server.

- Users can define the type of service they want to use and where they want to use the service

- Users can view service charges for all stores near you

- Users can quickly call or make an appointment to quickly use the service

- Users can send their feedback

- Users can view store service information

- Users can see the feedback of people about the supplier

- Suppliers can view their financial reports

- Suppliers can add promotional information as well as the price of each service

- Suppliers can add branchs of the company

The advantages of this service include providing users with comprehensive information to select the best shop, facilitating effective communication between users and suppliers for quick service access, delivering real-time functionality for immediate results, and offering supplier recommendations based on ratings and location.

 Disadvantages: o Internet connection may not response stable enough which lead to application low performance, so it is essential to maximum internet usage and performance.

Functional Requirements

Function requirements of the system are listed as below:

To create an account, users can select either a standard user or supplier profile, each requiring distinct information and images All submitted user information will be reviewed and verified by our staff to ensure accuracy and compliance.

 View Supplier of Service List: o The user can find the supplier of service available near to the desired user location by using GPS or input location

Page 16 of 186 o The user can choose the time to use the service o The user also can find the appropriate store the problem, the system will favor stores based on rank, price, and quality of service o The user can view detail of service money, distance, information, reviews of users about the supplier

 Feedback and Manage Saved Data o The user can send feedback to the server o The user can manage and update their saved data such as personal information, history, …

 History and Profitability Report o Suppliers can monitor daily profits, monthly o Users and Suppliers can view their history of using the service

The System Management feature allows suppliers to efficiently oversee service information, pricing, and promotions, while administrators can manage user details, supplier relationships, and service contracts Additionally, administrators have access to various reports that provide insights into occupancy rates and profitability, enhancing overall operational efficiency.

Roles and Responsibility

No Full Name Role Position Contact

Manager Instructor Huongntc2@fe.edu.vn

2 Phan Nhat Hoang Developer Leader HoangPNSE62077@fpt.edu.vn

3 Duong Ngoc Phu Developer Member PhuDNSE61865@fpt.edu.vn

4 Nguyen Huu Diep Developer Member HiepNHSE61975@fpt.edu.vn

Software Project Management Plan

Problem Definition

1.1 Name of this Capstone Project

- Official name: Air Conditioning Services Application (ACSA)

The demand for booking services in households is growing daily, yet the number of available supplier outlets remains unclear To address this gap, the Air Conditioning Services Application is being developed to provide users with quick access to reliable air conditioning services.

Mobile applications: There are several applications which provide air condition services Some applications have the function of hiring people to complete the work

Advantages: Easy to use, helpful with the variety of services

Disadvantages: There is only one air-conditioned cleaning service that does not provide home delivery service The app does not provide pricing information and a reputable service store

The system simplifies the process for first-time users to easily find and select suppliers that meet their needs Additionally, it assists users in locating nearby suppliers based on their desired location.

 Create an account: Users can create an account to use the app

 View service list: Users can view the list of all services available on the app

 View supplier’s information: Users can view detailed information about the supplier

 Search supplier: Users can search for supplier listings near where they want

 Communication: Users can call, message or schedule an appointment with a supplier for support or advice

 Users can send feedback about the service they had the booking in the system

 Supplier can manager data such as service information, promotion, statistics, affiliates, …

Admins have the ability to manage critical data, including supplier and user information, as well as statistical reports All accounts registered as users or suppliers must undergo verification and approval by an admin prior to being activated for use.

- The system can be used by every people with Android Phone 6.0 devices or later, or with a laptop with internet connection

- The language of the application is Vietnamese

 The mobile application for the user

 The website, for supplier and admin

 All the process document involved

The current system only support for Android and staff has to approve request manually, so we recommend some features for future plans:

 The mobile application will be available on iOS

 The request can be approved automatically by compare with a government database

 Apply multi-languages and currencies

Internet Connection Cable, Wi-Fi (4 Mbps) Cable, Wi-Fi (8 Mbps)

Operating System Linux Ubuntu 16.04 Linux Ubuntu 16.04

Computer Processor Intel® Xeon ® 1.4GHz Intel® Xeon ® Quad Core

Computer Memory 1GB RAM 2GB or more

Table 3 Hardware requirement for continuous integrating server

Operating System Windows Vista, 7, 8 Windows 7, 8

460 @ 2.53GHz Intel® Core(TM) i5 CPU,

Computer Memory 1GB of RAM 3GB of RAM or more

Table 4 Hardware requirement for web development

Operating System Android Phone 6.0 Android Phone 7.0

Hardware GPS supported GPS supported

Memory 150MB 150MB or more

Table 5 Hardware requirement for mobile development

Operating system Windows 7 or above

IDE Android Studio 3.+, Intellij IDEA 14.1

Web browser Chrome 42 or above

Project organization

For more information: http://www.waterfall-model.com/sashimi-waterfall- model/

Explanation: We use Modified Waterfall Development Model for Air Conditioning Service Application development for several reasons, mostly because:

During the Design phase, both functional and non-functional requirements may undergo changes due to variations in service type and service elements, ultimately influencing the functions that need to be modified and redesigned.

During the implementation phase of Android phone application development, the architecture established during the design phase may undergo changes This is often due to the discovery of new supporting features that can influence the overall architecture Additionally, updates or modifications to certain functions necessitate revisions to the design document to ensure it remains aligned with the current project requirements.

No Full name Role in Group Responsibilities

Hương Project manager - Specify user requirement

- Give out technique and business analysis support

2 Phan Nhật Hoàng Team leader, BA,

3 Dương Ngọc Phú BA, Developer,

4 Nguyễn Hữu Hiệp BA, Developer,

5 Đoàn Minh Hải BA, Developer,

Backend Java, Spring Framework, JSP, Hibernate

Development tool Android Studio 3.+, IntelliJ IDEA 14

Project Management Plan

Below are all the major tasks that need to be performed sequentially during the development of the system

Phase Description Deliverables Resource needed Dependencies and

Definition Identify and clarify system requirements

Introduction 20 man- days N/A - Missing requirement

- Project’s scope can be unclear

Software Design - Identify hardware and software requirements

- Decide software architect and clarify software detail design

Report No.2 Software Project Management Plan, Report No 3 Software Requirement Specification and

Report No 4 Software Design Description

- Misunderstood or unclear system’s requirement

- Lack of practical experience leading to unreasonable design

Implementation and Unit Testing - Implements all functions of system

Software package 120 man- days - Base on Software

Requirement Specification and Software Design Description

- Coding try to follow coding convention

- Member does not performs unit test

System Testing - Perform integration test and system test

- Lack of testing experience leading to lack of test cases

- Not enough time for performing test

User’s Manual 15 man- days Integration and

User’s manual may be difficult for user to understand and confuse

Table 9 Software development life cycle

Collect requirements Find which systems currently provide similar service, theirs strengths and weakness

Phan Nhat Hoang Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Identify and clarify system requirements

Research current systems to collect requirements

Define main and needed functions the system must include

Phan Nhat Hoang Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Prototype Build a prototype of proposed system (Website/Mobile) Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

3.2.2 Phase 2: System and Software Design

Identify hardware and software requirements

Find out the suitable hardware and software for the system, as well as its minimum and recommended requirements

Phan Nhat Hoang Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Decide software architect and clarify software detail design

- Define the major software components and interfaces

- Draw core flow diagram, use case diagram, …

- Group meeting to review and modify

Phan Nhat Hoang Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Design database - Design database for the system Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

3.2.3 Phase 3: Implementation and Unit Testing

Implements all functions of system

Coding all the components Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Create test plan Planning for testing Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Perform Unit testing - Write Unit test cases

Phan Nhat Hoang Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

3.2.4 Phase 4: Integration and System Testing

Perform integration test and system test

- Test groups of modules and test whole the system Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Deploy the system Deploy the system in client environment Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Create the user’s manuals Create a guideline to instruct users using system Phan Nhat Hoang

Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Do routine maintenance activities for client system

Phan Nhat Hoang Duong Ngoc Phu Doan Minh Hai Nguyen Huu Hiep

Refer to “Task sheet” folder

Refer to “Meeting minutes” folder.

Coding Convention

This project follows “Code Conventions for the Java TM Programming Language, by Sun Microsystems, rev April 20, 1999” http://www.oracle.com/technetwork/java/codeconventions-150003.pdf

We use followings naming convention from the reference to capable with the current situation in our team:

- Naming: o Class names must be in Pascal case o Variable names must be in Camel case o Each Java class belongs to a single file

Page 26 of 186 o Use four spaces intentions o Avoid lines with more than 80 characters

For optimal readability and engagement, it is recommended to declare one variable per line, as this practice encourages commenting Additionally, it is crucial to avoid declaring variables and functions on the same line Lastly, ensure that different data types are not placed on the same line to maintain clarity in your code.

Software Requirement Specification

User Requirement Specification

A guest is an individual who lacks access to the full system but can utilize certain functions To unlock all features, a guest must log in Some of the functions available to guests include limited access to specific system capabilities.

- Login in Mobile Application to become the member

Customer is guest who uses his account to login to the system The customer can use some following functions:

- View location, distance of supplier

Supplier is guest who uses his account to login to the web system The supplier can use some following functions:

Staff members are responsible for managing customer, car owner, and vehicle information directly within the system They are equipped to address and resolve issues that may arise from customers, utilizing various functions to effectively handle these situations.

System Requirement Specification

- General requirement for graphics user interface of website and application on mobile device is the GUI should be simple, clear, intuitive, and reminiscent

- Some design principle will be taken into consideration:

 User Interface Guidelines - Google [Ref: Appendix 1]

 Android Design Guidelines - Android Developers [Ref: Appendix 2]

- Chromes (Version 66.0.3359.181), Firefox (version 59.0.2) with Resolution

(1024 x 768) or bigger and must support JavaScript and HTML5

- Mobile application: Android operating system (v 4.2 or above)

- Use HTTP protocol 1.1 for communication between the web browser and the web server

- Use HTTP protocol 1.1 for communication between the mobile application and the web service

2.2.1 Android Application Overview Use Case

Figure 2: Android Application Overview Use Case

Figure 3 Web Application Overview Use Case

2.3.1.1. Overview Use Case

Figure 4 < Unauthorized user> Overview Use Case

Figure 5 Sign up

Use Case No ACSAU01 Use Case Version 2.0

Use Case Name Sign up

- This use case allows guest to create new account request in the system

- Guest create new account request success

- Guest sends command to create account request

- Success: New account will be created for guest

Step Actor Action System Response

1 Guest goes to new account view Display new view with the following information

System requires information from guest:

Personal information (all information below are required)

- Username: free text input, required, length 1 – 20

- Password: free text input, required, length 6 – 12

- RePassword: free text input, required, length 3 – 80

- Full Name: free text input, required, length 1 – 50

- Email: free text input, required, length

3 Guest sends command to create new account request

System validates information, request for confirmation and redirect to home screen [Exception 1, 2]

No Actor Action System Response

1 Guest sends command to create new account request System shows error message to ask user input missing required fields

2 Guest’s email is existed in the system Show message to notify guest that their email is existed in the system

- New customer account will be stored in the system with inputted information

- System must ensure has no duplicate customer

- An email will be sent to user to notify email verification

- User can start using the system

Table 10 Use case ACSAU01 - Sign up

Use Case No ACSAU02 Use Case Version 2.0

- This use case allows guest to login in the system

- Guest sends command to login request

- Success: Redirect to home page

Step Actor Action System Response

1 Guest goes to login screen Display new view with following information

- Username: free text input, required, length 1 – 20

- Password: free text input, required, length 6 – 12

3 Guest sends “Login” command [Alternative 1]

System validate data and return login result [Exception 1, 2]

No Actor Action System Response

1 If user click on “Register” tab Display new view with following information

System requires information from guest:

Personal information (all information below are required)

- Username: free text input, required, length 1 – 20

- Password: free text input, required, length 6 – 12

- RePassword: free text input, required, length 3 – 80

- Full Name: free text input, required, length 1 – 50

- Email: free text input, required, length 11 – 50

3 User sends command to continue process System validate information and request for confirmation

No Actor Action System Response

1 Guest sends command to create new account request System shows error message to ask user input missing required fields

2 Guest’s email is existed in the system Show message to notify guest that their email is existed in the system

- New customer account will be stored in the system with inputted information

- System must ensure has no duplicate customer

- An email will be sent to user to notify email verification

- User can start using the system

Table 11 Use case ACSAU02 - Login

Figure 7 Overview Use Case

Use Case No ACSAC01 Use Case Version 2.0

Use Case Name Booking service

- This use case helps user to find supplier’s services which are near customer location and booking request

- User booking service request successfully

- User sends “Find service” command

- User must login into the system with role Customer

- Customer device must be enabled GPS location and have internet connection

- Success: User booking service successfully

Step Actor Action System Response

1 User sends booking service command Display new view with following information:

2 User sends continue command Display new view with following information:

3 User send start booking command Show message to notify user that order has been created

4 User goes to view order Display new view with following information:

5 User send start booking command Forward to paypal page

6 User login to paypal and execute payment process Show message to notify user that contract has been pay

No Actor Action System Response

1 If device GPS and internet connection is not enabled Show message to notify user that device

GPS and internet is not enable and redirect to device setting

2 If supplier data is wrong Show message to notify user that supplier detail is wrong and the supplier detail has been aborted

3 If user not select anything and click on “Booking”

Show message to notify user that user must select bank to continue process

4 If user cannot complete payment Show message to notify user that payment is not success and renting process has been aborted

- If device GPS and internet connection is not enabled, system cannot find user location and suitable supplier near user

- User cannot appointment day in the past

- If user cannot complete the payment process, system will cancel the reservation

Table 12 Use case ACSAC01 - Booking service

Use Case No ACSAC02 Use Case Version 2.0

Use Case Name Cancel order

- This case allows users who have a booking service request which is on standby mode, can cancel a reservation

- User can cancel a reservation successfully

- User must login into the system with role Customer

- Customer device must be enabled GPS location and have internet connection

- Customer must have a service reservation and service is not yet provided

- Success: Show cancel reservation success message

Step Actor Action System Response

1 User sends cancel service command in order detail view

Display confirm dialog “Please fill reason cancel order ”

2 User fill reason and select accept command [Alternative 1]

Display dialog with following text:

No Actor Action System Response

1 If user doesn’t fill reason and select accept command Display confirm dialog “Please fill reason cancel order”, reservation process still continues

No Actor Action System Response

1 If system fail to process refund for customer Show message to notify user that user request is still processing, please wait for a few minutes and redo refund process

Relationships: Include booking service process

- If user did not have a service reservation, cancel process cannot be executed

- If the system cannot complete the refund process, the system must automatically redo the process until it succeeds

Table 13 Use case ACSAC01- Cancel order

Figure 10 View booking history

Use Case No ACSAC03 Use Case Version 2.0

Use Case Name View booking history

- This use case allow user to view all of the customer’s transactions in the past

- Customer can view booking history

- Customer sends view history request

- User must login into the system with role Customer

- Success: Show the customer’s transactions history to the user

Step Actor Action System Response

1 User goes to booking history view Display booking history view with following information: o Booking time: date o Service name: text o Supplier name: text o Service price: int [Alternative 1]

No Actor Action System Response

1 If user have not booking service yet Display booking history view with blank data

- The information is loaded from the system

- List of transactions will be sorted by date in descending order

- Orders had payment and user had use service will at tab complete

Table 14 Use case ACSAC03 - View booking history

Figure 11 View profile information

Use Case No ACSAC04 Use Case Version 2.0

Use Case Name View profile information

- This use case allows user to view their information and profile in the system

- User view account information stored in the system successfully

- User sends view account information command

- User must login into the system with role Customer

- Success: Show the customer’s information to the user

Step Actor Action System Response

1 User sends view account information command Display account information view that shows user list of account information includes:

- The information is loaded from the system

Table 15 Use case ACSAC04 - View profile information

Use Case No ACSAC05 Use Case Version 2.0

Use Case Name Update profile

- This use case allows user to update their profile and information stored in the system

- User can update the profile

- User sends update information command

- User must login into the system with role Customer

- User must stand at view profile information

- Success: Show the new customer’s information to the user

Step Actor Action System Response

1 User goes to update information view

Display update information view allow user to update information includes:

- Full name: free text input, required, length 3-80

- Email: free text input, required, length 10-250

- Address: free text input, required, length 10-250

- Phone: free text input, required, length 8-15

2 User fill required information [Alternative 1, 2]

3 User sends request update command Show message to notify that request is submit successfully

No Actor Action System Response

1 User input missed one of requirement information Show message to notify user what required information is missing

2 The inputted information length is out of range Show message to notify user what information is out of range

- The information is loaded from the system

- Information will be sent to the system with inputted information

Table 16 Use case ACSAC05 - Update profile

Figure 13 Chat with supplier

Use Case No ACSAC06 Use Case Version 2.0

Use Case Name Chat with supplier

- This use case allows user to chat with supplier in the system

- User can chat with supplier

- User sends message to supplier

- User must login into the system with role Customer

- Success: Show the chat screen to the user

Step Actor Action System Response

1 User goes to supplier’s information

Display supplier’s information view allows user to seen

2 User sends request chat command Show the chat screen to the user

No Actor Action System Response

1 User goes to chat’s information Show list supplier has chat

2 User choose supplier to chat Show message between customer and supplier

- The message is loaded from the system

Table 17 Use case ACSAC06 - Chat with supplier

Figure 14 Chat with supplier

Use Case No ACSAC06 Use Case Version 2.0

- This use case allows user to feedback with supplier in the system

- User can feedback with supplier

- User sends feedback to system

- User must login into the system with role Customer

- Success: Show the chat screen to the user

Step Actor Action System Response

1 User goes to supplier’s information Display supplier’s information view allows user to seen

2 User sends request feedback command Show the feedback screen to the user

Display feedback view allow user to feedback information includes:

- Content: free text input, required, length 0-250

3 User rating star and fill reason feedback

4 Guest sends “Send” command System shows success message

No Actor Action System Response

1 If user doesn’t rating star System shows error message

- The feedback is loaded from the system

- User can’t feedback if hadn’t ordered yet

- User can’t feedback if didn’t rating star

Table 18 Use case ACSAC06 - Feedback

Figure 13 Overview Use Case

Use Case No ACSAA01 Use Case Version 2.0

Use Case Name Approve supplier

- This use case helps admin to view, verify and approve account information

- Admin approve account information successfully

- Admin receive a create account request from Supplier

- User must login into the system with role Admin

- Success: New account information will be saved to database

Step Actor Action System Response

1 User sends approve information command Display a new view with flowing information:

2 Admin select “Edit” in tab

Display a new view with flowing information:

- Branch o Branch ID o Branch name o Address

- Service o Service ID o Service name o Status

[Alternative 2] System save data to database

Account status change to Action

Page re-load Information dialog disable

No Actor Action System Response

1 Admin select “Delete” in tab

System delete data to database

2 Admin select Search button System search date to database

No Actor Action System Response

1 System not show account information System reload view and re-fetch data from database

- The information is loaded from the system

- User must login into the system with role Admin

Table 17 Use case ACSAA01 - Approve supplier

Figure 16 View total profit

Use Case No ACSAA08 Use Case Version 2.0

Use Case Name View total profit

- This use case helps admin to view total report in the system

- Admin can view total report

- Admin sends view total report command

- User must login into the system with role Admin

Step Actor Action System Response

1 Admin goes to view total report view Display new view contains the following information:

- Account status chart: line chart

- Service status chart: line chart

Relationships: extend by View report (Actor select between view total and view specific report)

- User must login into the system with role Admin

- The information is loaded from the system

Table 19 Use case ACSAA08 - View total profit

Figure 17 Overview Use Case

Use Case No ACSAS01 Use Case Version 2.0

Use Case Name Insert service

- This use case allows owner to request insert new service information to the system

- User sends new service request command

- User must login into the system with role Supplier

- Account status is “Waiting for approcal”

- Success: New service request will be sent to the system

Step Actor Action System Response

1 User sends insert service information command Display new view with following information

- Service name: free text input, required, length 1-50

- Type of service: can be multiple optional selected from these selections: o Air-conditioner o Electricity o Water

- Price: free text input, required, length 1-18

- Status: can be multiple optional selected from these selections: o Active o Suspended

3 User sends command to create new service request Show message to notify that request is submit successful

No Actor Action System Response

1 Supplier sends command to continue process request System shows error message to ask supplier input missing required fields

2 Supplier’s service is existed in the system Show message to notify supplier that their service is existed in the system

- The information is loaded from the system

Table 20 Use case ACSAS01 - Insert service

Figure 19 Update service information

Use Case No ACSAS02 Use Case Version 2.0

Use Case Name Update service information

- This use case help user to send their update service information

- User sends update service information command

- User must login into the system with role Supplier

- There is at least 1 service belongs to supplier in the system

- Success: Show message update information is successful

Step Actor Action System Response

1 User sends update service request command Display new view with following information

- Service name: free text input, required, length 1-50

- Type of service: can be multiple optional selected from these selections: o Air-conditioner

- Price: free text input, required, length 1-18

- Status: can be multiple optional selected from these selections: o Active o Suspended

3 User sends command to update service request

Show message to notify that request is submit successful

No Actor Action System Response

1 Supplier sends command to continue process request

System shows error message to ask supplier input missing required fields

2 Supplier’s service is existed in the system Show message to notify supplier that their service is existed in the system

- The information is loaded from the system

Table 21 Use case ACSAS02 - Update service information

Use Case No ACSAS03 Use Case Version 2.0

Use Case Name Delete service

- This use case helps user to delete service in the system

- User sends delete service command

- User must login into the system with role Supplier

- There is at least 1 service belongs to supplier in the system

- Success: Show message service deleted successfully

Step Actor Action System Response

1 User sends delete service command Display confirm dialog “Do you really want to delete vehicle” and following information includes:

[Alternative 1] Show message vehicle deleted success

No Actor Action System Response

1 User select No option Dialog disable, delete vehicle process aborted

- Service information will be deleted from database

Table 22 Use case ACSAS03 - Delete service

Use Case No ACSAS01 Use Case Version 2.0

Use Case Name Insert branch

- This use case allows owner to request insert new branch information to the system

- User sends new branch request command

- User must login into the system with role Supplier

- Account status is “Waiting for approcal”

- Success: New branch request will be sent to the system

Step Actor Action System Response

1 User sends insert branch information command Display new view with following information

- Branch name: free text input, required, length 1-250

- Branch name: free text input, required, length 1-250

- Address: free text input, required, length 1-205

3 User sends command to create new branch request Show message to notify that request is submit successful

No Actor Action System Response

1 Supplier sends command to continue process request System shows error message to ask supplier input missing required fields

2 Supplier’s service is existed in the system Show message to notify supplier that their service is existed in the system

- The information is loaded from the system

Table 23 Use case ACSAS01 - Insert service

Figure 22 Update branch information

Use Case No ACSAS02 Use Case Version 2.0

Use Case Name Update branch information

- This use case help user to send their update branch information

- User sends update branch information command

- User must login into the system with role Supplier

- There is at least 1 branch belongs to supplier in the system

- Success: Show message update information is successful

Step Actor Action System Response

1 User sends update branch request command Display new view with following information

- Branch name: free text input, required, length 1-250

- Branch name: free text input, required, length 1-250

- Address: free text input, required, length 1-205

3 User sends command to update branch request Show message to notify that request is submit successful

No Actor Action System Response

1 Supplier sends command to continue process request System shows error message to ask supplier input missing required fields

2 Supplier’s service is existed in the system Show message to notify supplier that their service is existed in the system

- The information is loaded from the system

Table 24 Use case ACSAS02 - Update service information

Use Case No ACSAS03 Use Case Version 2.0

Use Case Name Delete branch

- This use case helps user to delete branch in the system

- User sends delete branch command

- User must login into the system with role Supplier

- There is at least 1 branch belongs to supplier in the system

- Success: Show message branch deleted successfully

Step Actor Action System Response

1 User sends delete branch command Display confirm dialog “Do you really want to delete branch” and following information includes:

[Alternative 1] Show message branch deleted success

No Actor Action System Response

1 User select No option Dialog disable, delete branch process aborted

- Service information will be deleted from database

Table 25 Use case ACSAS03 - Delete branch

Use Case No ACSAS01 Use Case Version 2.0

Use Case Name Insert promotion

- This use case allows owner to request insert new promotion information to the system

- User sends new promotion request command

- User must login into the system with role Supplier

- Account status is “Waiting for approcal”

- Success: New promotion request will be sent to the system

Step Actor Action System Response

1 User sends insert promotion information command

Display new view with following information

- Promotion name: free text input, required, length 1-250

- Add service: can be multiple optional selected from these selections selections

- Describe: free text input, required, length 1-250

3 User sends command to create new promotion request

Show message to notify that request is submit successful

No Actor Action System Response

1 Supplier sends command to continue process request System shows error message to ask supplier input missing required fields

2 Supplier’s service is existed in the system Show message to notify supplier that their service is existed in the system

- The information is loaded from the system

Table 26 Use case ACSAS01 - Insert service

Figure 25 Update service information

Use Case No ACSAS02 Use Case Version 2.0

Use Case Name Update promotion information

- This use case help user to send their update service information

- User sends update service information command

- User must login into the system with role Supplier

- There is at least 1 service belongs to supplier in the system

- Success: Show message update information is successful

Step Actor Action System Response

1 User sends update promotion request command

Display new view with following information

- Promotion name: free text input, required, length 1-250

- Add service: can be multiple optional selected from these selections selections

- Describe: free text input, required, length 1-250

3 User sends command to update promotion request Show message to notify that request is submit successful

No Actor Action System Response

1 Supplier sends command to continue process request System shows error message to ask supplier input missing required fields

2 Supplier’s service is existed in the system Show message to notify supplier that their service is existed in the system

- The information is loaded from the system

Table 27 Use case ACSAS02 - Update service information

Use Case No ACSAS03 Use Case Version 2.0

Use Case Name Delete promotion

- This use case helps user to delete promotion in the system

- User sends delete promotion command

- User must login into the system with role Supplier

- There is at least 1 promotion belongs to supplier in the system

- Success: Show message promotion deleted successfully

Step Actor Action System Response

1 User sends delete promotion command Display confirm dialog “Do you really want to delete promotion” and following information includes:

Show message promotion deleted success

No Actor Action System Response

1 User select No option Dialog disable, delete promotion process aborted

- Promotion information will be deleted from database

Table 28 Use case ACSAS03 - Delete promotion

Figure 27 View revenue report

Use Case No ACSAS04 Use Case Version 2.0

Use Case Name View revenue report

- This use case allows supplier to view the profit report of service in the system

- User can view service profit report

- User sends view report command

- User must login into the system with role Supplier

- There is at least 1 service belongs to owner in the system

- Success: service report is show

Step Actor Action System Response

1 User goes to view profit report view Display new view contains the following information:

- Appointment in the next 5 days: text

- Order status chart: line chart

- User must login into the system with role Supplier

- There is at least 1 service belongs to owner in the system

- If service of supplier had not been using, service income is 0

Table 29 Use case ACSAS04 - View revenue report

Use Case No ACSAS05 Use Case Version 2.0

Use Case Name View profile

- This use case allows user to view their information and profile in the system

- User view account information stored in the system successfully

- User sends view account information command

- User must login into the system with role Supplier

- Success: Show the supplier’s information to the user

Step Actor Action System Response

1 User sends view account information command Display account information includes:

- Status: can be multiple optional selected from these selections: o Active o Suspended

- Main address: can be multiple optional selected from these selections

2 User sends view logo command Display account information includes:

3 User sends view payment command

- The information is loaded from the system

Table 30 Use case ACSAC04 - View profile

Use Case No ACSAS06 Use Case Version 2.0

Use Case Name Update profile

- This use case allow user to updated their profile and information store in the system

- User sends update information command

- User must login into the system with role Supplier

- User must be stand at view profile information

- Success: Show the new supplier’s information to the user

Step Actor Action System Response

1 User goes to update information view Display account information view that show user list of account information includes:

- Status: can be multiple optional selected from these selections: o Active o Suspended

- Main address: can be multiple optional selected from these selections

3 User sends view logo command Display account information includes:

4 User choose image to update logo

5 User sends view payment command Display account information includes:

7 User sends request save command Show message to notify that request is submit successful

No Actor Action System Response

1 User input missed one of requirement information Show message to notify user what required information is missing

2 The inputted information length is out of range Show message to notify user what information is out of range

- The information is loaded from the system

Table 31 Use case ACSAS06 - Update profile

Software System Attribute

All the texts, labels and alerts will be written in English

- The system usability is easy to use that will need less than 1 days of training for customer to use the system

- User can follow installation and manual guide for installation If there are any problems, user cans contacts developer for help 


- System notification success rate is less than 2 failed notifications per 1000 sent

- Web service API response success rate is less than 2 failed requests per 10,000 requests

- All input data are validated before saving to database

- All privacy information such as password is encrypted to ensure security

- Users is authentication/authorization for all users when they login to the system

- The system is separated into modules

- Admin, supplier can use application on every supported web browser

- Customer can use mobile application on every Android smartphone that have version greater than 4.0

- Requests from web application are responded in less than 10 seconds at 8 Mbps bandwidth speed

- Mobile checker application should return card information in less than 1 minute at 8 Mbps bandwidth speed.

Conceptual Diagram

Entity Data dictionary: describe all content of all entities

Account Contain the account information

Account Type Contain the type of account

Supplier Contain the supplier information

Branch Contain the branch information

Service Contain the service information

ServiceStatus Contain the service status

ServiceType Contain the type of service

Customer Contain the customer information

Order Contain the order information

OrderDetail Contain the all detail of each order

Promotion Contain the promotion information

PromotionDetail Contain the all detail of each promotion

Order Status Contain the statuses for order

PromotionStatus Contain the statuses for promotion

Feedback Contain the feedback of customer

City Contain all cities in Vietnam

District Contain all district in Vietnam

Table 32 Conceptual Diagram Data Dictionary

Software Design Description

Design Overview

This document outlines the technical and user interface design of the Air Conditioning Services Application for both web and mobile platforms It encompasses the architectural design, detailed specifications for common and business functions, as well as the database model design.

- The architectural design describes the overall architecture of the system and the architecture of each main component and subsystem

- The detailed design describes static and dynamic structure for each component and functions It includes class diagrams, class explanations and sequence diagrams for each use cases

- The database design describes the relationships between entities and details of each entity

This document provides a comprehensive overview of the system architecture design, detailing the component diagrams that illustrate the connections and integrations within the system Additionally, it includes an in-depth design description featuring class diagrams, explanations of each class, and sequence diagrams that outline the application's functions Finally, the document presents a fully attributed Entity Relationship Diagram, encapsulating the system's data structure.

System Architecture Design

The web application is built using ASP.NET MVC, along with Repository and Unit of Work patterns, leveraging Entity Framework for efficient data management This architectural choice facilitates the division of a large project into manageable modules, allowing our four-member team to effectively assign tasks and enhance collaboration.

This project follows MVC architecture with following components:

The controller serves as the component of the application that functions as an event handler, managing user interactions It typically processes data from user requests, invokes the relevant business methods, and determines the appropriate view to present back to the user.

- JSP/HTML (View) is the parts of the application that handles the display of the data The selection of View is under control of Controller

- Business is the parts of the application that do business processing to solve domain problems

- Model is the parts of the application that acts like a data transfer object between the system and database

- Web Service is the parts of the application that acts like event handler for web and mobile communication via REST method

About Repository and Unit Of Work patterns with Entity Framework for this Project

The repository and unit of work patterns are intended to create an abstraction layer between the data access layer and the business logic layer of an application

Implementing these patterns can help insulate your application from changes in the data store and can facilitate automated unit testing or test-driven development

The application is developed as an Android application We choose Ionic with Angular 4 to develope this project

Reference: Ionic: An AngularJS based framework on the rise

Component Diagram

Component Dictionary: Describes components Web Application Web application package: View, Controller

Mobile Application Mobile application package

Business Logic Component to handle all business logic of system

Restful Service Provide API for mobile applications to interact with the system

Supplier Component Component to handle supplier activities in the system

Customer Component Component to handle customer activities in the system

Admin Component Component to handle admin activities in the system

Detailed Description

Class dictionary: describe Class Class Name Mapping column with Conceptual diagram

Account Account Contain the account information

Account Type Account Type Contain the type of account

Supplier Supplier Contain the supplier information

Branch Branch Contain the branch information

Service Service Contain the service information

ServiceStatus Service Status Contain the service status

ServiceType Service Type Contain the type of service

Customer Customer Contain the customer information

Order Order Contain the order information

OrderDetail Order Detail Contain the all detail of each order

Promotion Promotion Contain the promotion information

PromotionDetail Promotion Detail Contain the all detail of each promotion

Order Status Order Status Contain the statuses for order

PromotionStatus Promotion Status Contain the statuses for promotion

Feedback Feedback Contain the feedback of customer

City City Contain all cities in Vietnam

District District Contain all district in Vietnam

AccountId Integer Public Unique identifier of an account

Username String Public Account’s username

Password String Public Account’s password

AccountTypeId Integer Public Account’s Account Type ID

Created Date Date time Public Account’s Created Date

Created By String Public Define who created this account

Updated date Date time Public Account’s Updated Date

Updated By String Public Define who updated this account

IsDeleted Boolean Public Mark account as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

AccountTypeId Integer Public Unique identifier of an account type

Name String Public Account Type Name

CreatedDate Date Time Public Account Type’s created date

CreatedBy DateTime Public Define who created this type

UpdatedDate DateTime Public Account Type’s updated date

UpdatedBy Integer Public Define who updated this type

IsDeleted Boolean Public Mark account type as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

SupplierId Integer Public Unique identifier of a supplier

Name Integer Public Supplier’s name

AccountId Integer Public Supplier’s account id in system

Avatar string Public Supplier’s avatar link

SupplierStatusId Integer Public Supplier’s status

MainBranchId int Public Supplier’s main brach Id

Email String Public Supplier’s email

PhoneNumber String Public Supplier’s phone number

CreatedDate Date time Public Supplier’s Created Date

CreatedBy String Public Define who created this

UpdatedDate Date time Public Supplier’s updated date

UpdatedBy String Public Define who updated this supplier

IsDeleted Boolean Public Mark supplier as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

SupplierStatusId Integer Public Unique identifier of a supplier status

Name String Public Supplier status’ name

CreatedDate Date time Public Supplier status’ created date

CreatedBy String Public Define who created this status

UpdatedDate Date time Public Supplier status’ updated date

UpdatedBy String Public Define who updated this type

IsDeleted Boolean Public Mark supplier status as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

BranchId Integer Public Unique identifier of a branch

Name String Public Branch’s name

SupplierId Integer Public Brach’s supplier Id

CityId Integer Public Define city where the branch is located

DistrictId Integer Public Define district where the branch is located

Address String Public Address details to help find correct location

Longitude String Public Branch’s longitude

Latitude String Public Branch’s latitude

CreatedDate Date time Public Branch’s created date

CreatedBy String Public Define who created this branch

UpdatedDate Date time Public Branch’s updated date

UpdatedBy String Public Define who updated this branch

IsDeleted Boolean Public Mark branch as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

CityId Integer Public unique identifier of a city

Name String Public The city’s name

CreatedDate Date time Public City’s created date

CreatedBy String Public Define who created data for this city

UpdatedDate Date time Public City’s updated date

UpdatedBy String Public Define who updated this city

IsDeleted Boolean Public Mark city as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

DistrictId Integer Public Unique identifier of a district

Name String Public The district’s name

CtityId Float Public District’s CityId

CreatedDate Date time Public District’s created date in system

CreatedBy String Public Define who created data for this district

UpdatedDate Date time Public District’s updated date in system

UpdatedBy String Public Define who updated this district

IsDeleted Boolean Public Mak district as delete or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

CustomeId Integer Public Unique identifier of a customer

Name String Public Customer’s name

PhoneNumber String Public Customer’s phone number

Address String Public Customer’s address

Email String Public Customer’s email

DateOfBirth Date Public Customer’s Date of

AccountId Integer Public Account Id of this customer in system

CreatedDate Date time Public Customer’s created

CreatedBy String Public Define who created data

UpdatedDate Date time Public Customer’s updated date

UpdatedBy String Public Define who updated this Customer

IsDeleted Boolean Public Mark Customer as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

ServiceId Integer Public Unique identifier of the service

SupplierId Integer Public Define which supplier created this service

ServiceTypeId Integer Public Type of this service

Name String Public Service name

Price Decimal Public Current service price

ServiceStatusId Integer Public Current status of this service

CreatedDate Datetime Public Service’s create date

CreatedBy String String Define who created this service

UpdatedDate Datetime Public Service’s updated date

UpdatedBy String Public Define who updated this service

IsDeleted Boolean Public Mark service as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

ServiceTypeId Integer Public Unique identifier of service type

Name String Public The name of service type

CreatedDate Date time Public ServiceType’s created date

CreatedBy String Public Define who created this type

UpdateDate Date time Public ServiceType’s updated date

UpdatedBy String Public Define who updated this type

IsDeleted String Boolean Mark service type as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

ServiceStatusId Integer Public Unique identifier of service status

Name String Public The name of this status

CreatedDate Date time Public Service status’s created date

CreatedBy String Public Define who created this status

UpdatedDate Date time Public Service status’s updated date

UpdatedBy String Public Define who updated this status

IsDeleted Boolean Public Mark service type as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

OrderId Integer Public Unique identifier of order

CustomerId Integer Public Define who orders

Address String Public Customer’s address

PhoneNumber String Public Customer’s phone number

TotalPrice Decimal Public Total price of order

OrderStatusId Integer Public The current status of order

CreatedDate Date time Public Order’s created date

CreatedBy String Public Define who created this order

UpdatedDate Date time Public Order’s updated date

UpdatedBy String Public Defin who updated this order

IsDeleted Boolean Public Mark this order as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

OrderStatusId Integer Public Unique identifier of order status

Name String Public The name of status

CreatedDate Date time Public Created date of this status

CreatedBy String Public Define who created this status

UpdatedDate Date time Public Updated date of this status

UpdatedBy String Public Defin who updated this status

IsDeleted Boolean Public Mark status as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

OrderDetailId Integer Public Unique identifier of order detail

ServiceId Integer Public Service customer ordered

OrderId Integer Public OrderId of this order detail

Price Decimal Public Pirce of service

Description String Public Description for service

CreatedDate Date time Public Created date of this order detaik

CreatedBy String Public Define who created this status

UpdatedDate Date time Public Updated date of this order detail

UpdatedBy String Public Define who updated this order detail

IsDeleted Boolean Public Mark this order detail as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

PromoitonId Integer Public Unique identifier of promotion

SupplierId Integer Public The supplier who created promotion

Title String Public Title of promotion

Description String Public Description of promotion

EffectiveStartDate Date Public Promotion’s effective start date

EffectiveEndDate Date Public Promotion’s effective end date

CreatedDate Date time Public Promtion’s created date

CreatedBy String Public Define who created this promotion

UpdatedDate Date time Public Updated date of this promotion

UpdatedBy String Public Define who updated this promotion

IsDeleted Boolean Public Mark status as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

PromoitonDetailId Integer Public Unique identifier of promotion detail

PromotionPercent Integer Public Promotion percent for this detail

ServiceId Integer Public ServiceId for this detail

PromotionId String Public Promotion Id of this detail

OrginalPrice Decimal Public Orginal price of service

CreatedDate Date time Public Promtion detail ’s created date

CreatedBy String Public Define who created this promotion detail

UpdatedDate Date time Public Updated date of this promotion detail

UpdatedBy String Public Define who updated this promotion detail

IsDeleted Boolean Public Mark detail as deleted or not

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

FeedbackId Integer Public Unique identifier of feedback

CustomerId Integer Public Who created feedback

OrderId Integer Public Customer can do feedback for each order or supplier

FeedbackContent String Public Content of feedback

RatingStar Integer Public Number of star

CreatedDate Date time Public Feedback ’s created date

CreatedBy String Public Define who created this feedback

UpdatedDate Date time Public Updated date of this feedback

UpdatedBy String Public Define who updated this feedback

IsDeleted Boolean Public Mark feedback as deleted or not

Method Return Type Visibility Description

Getter Attribute type Public Get attribute value

Setter Void Public Set value of attribute

Summary: this diagram shown process of customer view service list

Figure 33 Sequence diagram - View service list

Summary: this diagram shown process of customer booking service

Figure 34 Sequence diagram - Booking service

Summary: this diagram shown process of customer cancel service

Figure 35 Sequence diagram - Create rental contract

Summary: this diagram shown process of customer feedback

Figure 36 Sequence diagram - Feedback

Summary: this diagram shown process of user does payment

Figure 37 Sequence diagram - Paypal payment

Summary: this diagram shown process of customer view suggested location

Figure 38 Sequence diagram - View suggested locations

Summary: this diagram shown process of guest registers new account

Figure 39 Sequence diagram - Register new account

Summary: this diagram shown process of admin approve account

Figure 40 Sequence diagram - Approve account

Summary: this diagram shown process of supplier create service

Figure 41 Sequence diagram - Create service

Summary: this diagram shown process of supplier create branch

Figure 42 Sequence diagram - Create branch

Summary: this diagram shown process of supplier create promotion

Figure 43 Sequence diagram - Create promotion

Summary: this diagram shown process of supplier manage service

Figure 44 Sequence diagram - Manage service

Summary: this diagram shown process of supplier manage branch

Figure 45 Sequence diagram - Manage branch

Summary: this diagram shown process of supplier manage promotion

Figure 46 Sequence diagram - Manage promotion

Interface

Signature Description Input Output Output

Create new account for customer

Request object r contains: username: string email : string password : string fullName: string

ResponseMess age for create success or fail

Json string The username already exists in the system public

Request object r contains: username: string password: string

ResponseMess age for login success or fail

If user is valid, return access token and basic detail information of this customer

Json string The user role is not customer role public

Fullname: string PhoneNumber: string Email: string

ResponseMess age for update success or fail

Json string CustomerId does not exist in the system

Get customer information by Id

CustomerId: integer ResponseMess age for customer information

Json string CustomerId does not exist in the system public

Create new feedback Request object r contains: customerId: Integer supplierId : integer numberOfStar: integer content: string

ResponseMess age for create success or fail

Json string CustomerId does not exist in the system public

Get all orders by customerId customerId: integer ResponseMess age for a list of orders

CustomerId does not exist in the system public

Get order detail by orderId orderId: integer ResponseMess age for detail of order

Json string OrderId does not exist in the system public

NotifyFinishPayment(int orderId, string bookingId)

Update order status to “Done” status and update firebase database to notify to supplier orderId: string, bookingId: integer ResponseMess age for update success or fail

Json string OrderId does not exist in the system

Customer cancel order Notify to supplier

Request object r contains: orderId: Integer Reason: integer

ResponseMess age for update success or fail

Json string OrderId does not exist in the system public

GetAllSupplierWithLocatio nLatLong(string latitude, string longtitude, string service)

Get all supplier near a location base on latitude , longtitude and service name latitude: string longtitude : string service : string

ResponseMess age for a list of suppliers

Get supplier detail by supplierId supplierId : integer ResponseMess age for detail of supplier

Json string SupplierId does not exist in the system

Figure 47 Interface - Manage supplier

Name Description Read only Mandator y Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

Fill search keyword No Yes Textbox String N/A

4 Table Table of contain account information Yes Yes Table N/A N/A

Table 65 Manage supplier fields

No Function Description Validation Outcome

5 btnSearch Load table contain information of searched account N/A Reload supplier information table

6 btnEdit Load new page contain information of account to edit N/A Reload supplier information table

7 btnDelete Load notification delete account N/A Reload supplier information table

Table 66 < Admin> Manage supplier buttons/hyperlinks

Figure 48 Interface - Approve and view supplier

Name Description Read only Mandatory Control

1 txtName Account’s name Yes Yes Textview String 3 – 80

2 txtPhone Account’s phone number Yes Yes Textview Integer 8 – 15

3 txtEmail Account’s email Yes Yes Textview String 3 – 250

4 txtDateO fParti Account’s date of participation Yes Yes Textview Integer 8 – 15

5 Table Table of contain account’s branch

6 Table Table of contain account’s service

7 txtStatus Account’s status Yes Yes Textview String 3 – 80

9 txtReaso n Account’s note No No Text String 3 – 250

11 Menu Navigation bar Yes Yes Menu bar N/A N/A

12 Title Title of the page Yes Yes Label N/A N/A

Table 67 Approve and view supplier fields

No Function Description Validation Outcome

8 drpStatus Drop down contain status of the account N/A Transfer to approve supplier page

10 btnSave Approve account information is valid N/A Transfer to manage supplier page

Table 68 Approve and view supplier buttons/hyperlinks

Figure 49 Interface - Manage customer

Name Description Read only Mandator y Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 txtSear chValue Fill search keyword No Yes Textbox String N/A

4 Table Table of contain account information Yes Yes Table N/A N/A

Table 69 Manage customer fields

No Function Description Validation Outcome

5 btnSearch Load table contain information of searched account N/A Reload customer information table

6 btnView Load new page contain information of account to view N/A Reload customer information table

Table 70 Manage customer buttons/hyperlinks

Figure 50 Interface - View customer

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 txtName Account’s name Yes Yes Textview String 3 – 80

4 txtAge Account’s age Yes Yes Textview String 3 – 80

5 txtPhone Account’s phone number Yes Yes Textview Integer 8 – 15

6 txtAddre ss Account’s address Yes Yes Textview String 3 – 250

7 txtUsern ame Account’s user name Yes Yes Textview String 3 – 80

8 txtDateO fParti Account’s date of participation Yes Yes Textview Integer 8 – 15

9 Table Table of contain account’s branch

Table 71 View customer fields

No Function Description Validation Outcome

10 btnClose Close view customer page N/A Transfer to manage customer page

Table 72 View customer buttons/hyperlinks

Figure 51 Interface - Manage service

Name Description Read only Mandator y Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

4 txtSear chValue Fill search keyword No Yes Textbox String N/A

6 Table Table of contain service information Yes Yes Table N/A N/A

Table 73 Manage service fields

No Function Description Validation Outcome

3 btnAdd Load new page to create service

5 btnSearch Load table contain information of service N/A Reload service information table

7 btnEdit Load new page contain information of account to edit N/A Reload service information table

8 btnDelete Load notification delete account N/A Reload service information table

Table 74 Manage service buttons/hyperlinks

Figure 52 Interface - Create new service

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 txtName Service’s name No Yes Text String 3 – 80

5 txtPrice Service’s price No Yes Text String 3 – 80

Table 75 Create new service fields

No Function Description Validation Outcome

4 drpTypeService Drop down contain type of service N/A Transfer to create service page

6 drpStatus Drop down contain status of the service N/A Transfer to create service page

7 btnSave Create new service information is valid N/A Transfer to manage service page

8 btnClose Close create new service page N/A Transfer to manage service page

Table 76 Create new service buttons/hyperlinks

Figure 53 Interface - Manage branch

Name Description Read only Mandator y Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

4 txtSear chValue Fill search keyword No Yes Textbox String N/A

6 Table Table of contain branch information

Table 77 Manage branch fields

No Function Description Validation Outcome

3 btnAdd Load new page to create branch N/A Reload branch information table

5 btnSearch Load table contain information of service N/A Reload branch information table

7 btnEdit Load new page contain information of account to edit N/A Reload branch information table

8 btnDelete Load notification delete account N/A Reload branch information table

Table 78 Manage branch buttons/hyperlinks

Figure 54 Interface - Create new branch

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 txtName Branch’s name No Yes Text String 3 – 80

4 txtAddrO nMap Address’s branch on map No Yes Text String 3 – 250

5 Map Map of Google No Yes Map N/A N/A

6 txtLatitu de Branch’s latitude on map Yes Yes Text String 3 – 250

7 txtLongit ude Branch’s longitude on map

9 txtCount ry Branch’s country No Yes Text String 3 – 250

10 txtAddre ss Branch’s address No Yes Text String 3 – 250

Table 79 Create new branch fields

No Function Description Validation Outcome

8 drpCity Drop down contain city of the branch N/A Transfer to create branch page

11 btnSave Create new branch information is valid N/A Transfer to manage branch page

Table 80 Create new branch buttons/hyperlinks

Figure 55 Interface - Manage promotion

Name Description Read only Mandator y Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

4 txtSear chValue Fill search keyword No Yes Textbox String N/A

6 Table Table of contain promotion information

Table 81 Manage promotion fields

No Function Description Validation Outcome

3 btnAdd Load new page to create promotion N/A Reload promotion information table

5 btnSearch Load table contain information of promotion N/A Reload promotion information table

7 btnEdit Load new page contain information of promotion to edit

8 btnDelete Load notification delete account N/A Reload promotion information table

Table 82 Manage promotion buttons/hyperlinks

Figure 56 Interface - Create new promotion

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 txtName Promotion’s name No Yes Text String 3 – 80

4 txtStartD ay Start day of promotion No Yes Text String 3 – 80

7 txtDescri be Promotion’s describe No Yes Text String 3 – 250

Table 83 Create new promotion fields

No Function Description Validation Outcome

6 drpService Drop down contain service N/A Transfer to create promotion page

8 btnSave Create new promotion information is valid N/A Transfer to manage promotion page

11 btnClose Close create new promotion page N/A Transfer to manage promotion page

Table 84 Create new promotion buttons/hyperlinks

Figure 57 Interface - Manage request

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

6 Table Table of contain request information

Table 85 Manage request fields

No Function Description Validation Outcome

4 btnSearch Load table contain information of request

5 btnClear Load table contain information of request

7 btnLink Load page transaction history N/A Reload request information table

8 btnChat Load page chat with customer N/A Reload request information table

Table 86 Manage request buttons/hyperlinks

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 Title Name’s customer Yes Yes Label N/A N/A

4 Chat box Display the message Yes Yes Box N/A N/A

6 List Display customer list Yes Yes Table N/A N/A

No Function Description Validation Outcome

3 btnAdd Load new page to create promotion

5 btnSearch Load table contain information of promotion

7 btnEdit Load new page contain information of promotion to edit

8 btnDelete Load notification delete account N/A Reload promotion information table

Table 88 Chat buttons/hyperlinks

Figure 59 Interface - Manage feedback

Name Description Read only Mandator y Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 Table Table of contain feedback information

Table 89 Manage feedback fields

No Function Description Validation Outcome

4 btnLink Load page transaction history N/A Reload feedback information table

Table 90 Manage feedback buttons/hyperlinks

Figure 60 Interface - Manage history

Name Description Read only Mandatory Control

1 Menu Navigation bar Yes Yes Menu bar N/A N/A

2 Title Title of the page Yes Yes Label N/A N/A

3 txtSear chValue Fill search keyword No Yes Textbox String N/A

6 Table Table of contain history information

Table 91 Manage history fields

No Function Description Validation Outcome

4 btnSearch Load table contain information of history

5 btnClear Load table contain information of history

7 btnEdit Load new page contain history to edit N/A Reload history information table

8 btnDelete Load notification delete history N/A Reload history information table

Table 92 Manage history buttons/hyperlinks

Figure 61 Interface - Register account

No Field Name Description Read only Mandatory Control

2 txtPassword Fill customer password No Yes Textbox String 8-250

3 txtRepass ReFill customer password No Yes Textbox String 8-250

4 txtFullname Fill customer full name No Yes Textbox String 8-250

5 txtEmail Fill customer email No Yes Textbox String 8-250

Table 93 Register account fields

No Function Description Validation Outcome

6 btnSave Confirm to create new customer If customer doesn’t input mandatory field, system will notify

Table 94 Register account buttons/hyperlinks

Figure 62 Interface - Search service

No Field Name Description Read only Mandatory Control

1 txtSearch Fill search keyword No Yes Textbox String N/A

4 txtLocation User current location Yes Yes Textview N/A N/A

5 Map Map of Google Yes Yes Label N/A N/A

7 List Supplier’s list Yes Yes N/A N/A N/A

Table 95 Search service page fields

No Function Description Validation Outcome

2 btnFilter Button to advance filter search N/A Show advance filter box

3 btnLocation Button to change location N/A Show your location

Table 96 Search service buttons/hyperlinks

Figure 63 Interface - Supplier detail

No Field Name Description Read only Mandatory Control

1 lblTitle Supplier title Yes Yes Label N/A N/A

2 imgSupplier Supplier’s avatar Yes Yes Image N/A N/A

9 lblDetail Service detail Yes Yes Label N/A N/A

10 Map Map of Google Yes Yes Map N/A N/A

11 lblTitle Location title Yes Yes Label N/A N/A

12 lblDetail Supplier detail Yes Yes Label N/A N/A

Table 97 Supplier detail fields

No Function Description Validation Outcome

3 btnCalendar Service booking time N/A Transfer to booking page

4 btnCall Call to supplier N/A Transfer to call

5 btnChat Chat with supplier N/A Transfer to chat page

6 btnService Service’s list N/A Transfer to supplier detail page

7 btnInfo Supplier’s information N/A Transfer to supplier detail page

8 btnFeedback Customer’s feedback N/A Transfer to supplier detail page

Table 98 Supplier detail button/hyperlinks

Figure 64 Interface - Home page

No Field Name Description Read only Mandatory Control

1 lblTitle App title Yes Yes Label N/A N/A

2 txtSearch Fill search keyword No Yes Textbox String N/A

3 Menu Menu of service type Yes Yes N/A N/A N/A

Table 99 Home page fields

Figure 65 Interface - Booking service

Name Description Read only Mandatory Control

1 lblTitle Booking title Yes Yes Label N/A N/A

2 txtName Fill customer username No Yes Textbox String 8-250

3 txtPhone Fill customer password No Yes Textbox String 8-250

4 txtAddress ReFill customer password No Yes Textbox String 8-250

7 txtNote Fill customer username No Yes Textbox String 8-250

Table 100 Booking service fields

No Function Description Validation Outcome

8 checkbox Choose service of air conditioning N/A N/A

9 Checkbox Choose service of water N/A N/A

10 checkbox Choose service of electric N/A N/A

11 btnSubmit Confirm to create booking service If customer doesn’t input mandatory field, system will notify

Table 101 Booking service button/hyperlinks

Figure 66 Interface - View history

No Field Name Description Read only Mandatory Control

1 lblTitle History title Yes Yes Label N/A N/A

4 lblDetail History detail Yes Yes Label N/A N/A

Table 102 View history fields

No Function Description Validation Outcome

2 tabProcessing Display all orders being processing of customer

If customer don’t have orders being processing System don’t show

3 tabCompleted Display all orders being completed of customer

If customer don’t have orders being completed System don’t show

Table 103 View history buttons/hyperlinks

Figure 67 Interface - Supplier detail

Name Description Read only Mandatory Control

1 lblTitle Booking title Yes Yes Label N/A N/A

2 txtName Fill customer username No Yes Textbox String 8-250

3 txtPhone Fill customer password No Yes Textbox String 8-250

4 txtAddress ReFill customer password No Yes Textbox String 8-250

7 txtNote Fill customer username No Yes Textbox String 8-250

Table 104 Supplier detail fields

No Function Description Validation Outcome

8 checkbox Choose service of air conditioning N/A N/A

9 Checkbox Choose service of water N/A N/A

10 checkbox Choose service of electric N/A N/A

11 btnSubmit Confirm to create booking service If customer doesn’t input mandatory field, system will notify

Table 105 Supplier detail button/hyperlinks

Database Design

Entity Data Dictionary: describe content of all entities Entity name Description

Account Table which contains all user account

Supplier Table which contains all supplier account

Customer Table which contains all customer account

Service Table which contains all service information

Branch Table which contains all branch information

Feedback Table which contains all feedback information

Promotion Table which contains all promotion information

PromotionDetail Table which contains promotion detail information

Order Table which contains all order information

OrderDetail Table which contains order detail information

City Table which contains city information

District Table which contains district information

Entity name Attributes Description Domain Null Account AccountId {PK} Unique identifier of account int No

Username Username of account nvarchar(20) Yes

Password Password of account nvarchar(20) Yes CreatedDate Date create account datetime Yes

CreatedBy Account creator nvarchar(30) Yes

UpdatedDate Date update account datetime Yes UpdatedBy Account updateer nvarchar(30) Yes IsDeleted Value to check account is delete or not bit No

{PK} Unique identifier of account type int No

Name Name of account type nvarchar(20) Yes

CreatedDate Date create account type datetime Yes

CreatedBy Account type creator nvarchar(30) Yes

UpdatedDate Date create account type datetime Yes

UpdatedBy Account type updateer nvarchar(30) Yes

IsDeleted Value to check account type is delete or not bit No

Branch BranchId {PK} Unique identifier of branch int No

Name Name of branch nvarchar(50) Yes

Address Address of branch nvarchar(50) Yes

Longitude Longitude of branch on map varchar(MAX) Yes

Latitude Latitude of branch on map varchar(MAX) Yes

CreatedDate Date create branch datetime Yes

CreatedBy Branch creator nvarchar(30) Yes

UpdatedDate Date create branch datetime Yes

UpdatedBy Branch updateer nvarchar(30) Yes

GoogleMapSearchK ey Key to search map of Google nvarchar(MA

IsDeleted Value to check branch is delete or not bit No

City CityId {PK} Unique identifier of city int No

Name City’s name nvarchar (50) Yes

CreatedDate Date create city datetime Yes

CreatedBy City creator nvarchar(30) Yes

UpdatedDate Date update city datetime Yes

UpdatedBy City updateer nvarchar(30) Yes

IsDeleted Value to check city is delete or not bit No

Customer CustomerId {PK} Unique identifier of customer int No

Name Customer’s name nvarchar(50) Yes

PhoneNumber Phone number’s customer nvarchar(15) Yes

Email Customer’s email nvarchar(50) Yes

CreatedDate Date create customer datetime Yes

CreatedBy Customer creator nvarchar(30) Yes UpdatedDate Date update customer datetime Yes

UpdatedBy Customer updateer nvarchar(30) Yes

DateOfBirth Customer’s birthday date Yes

IsDeleted Value to check customer is delete or not bit No

IsActived Value to check customer is active or not bit Yes

District DistrictId {PK} Unique identifier of district int No

Name District’s name nvarchar(50) Yes

CreatedDate Date create district datetime Yes

CreatedBy District creator nvarchar(30) Yes UpdatedDate Date update district datetime Yes UpdatedBy District updateer nvarchar(30) Yes IsDeleted Value to check district is delete or not bit No

Feedback FeedbackId {PK} Unique identifier of feedback int No

NumberOfStart Number of rating int Yes

FeedbackContent Feedback content nvarchar(MA

CreatedDate Date create feedback datetime Yes

CreatedBy Feedback creator nvarchar(30) Yes UpdatedDate Date update feedback datetime Yes

UpdatedBy Feedback updateer nvarchar(30) Yes IsDeleted Value to check feedback is delete or not bit No

Order OrderId {PK} Unique identifier of order int No

PhoneNumber Phone number nvarchar(15) Yes

TotalPrice Total price decimal(18, 0) Yes

CreatedDate Date create order datetime Yes

CreatedBy Order creator nvarchar(30) Yes

UpdatedDate Date update order datetime Yes

UpdatedBy Order updater nvarchar(30) Yes

IsDeleted Value to check order is delete or not bit No

IsPaid Value to check paid is pass or fail bit Yes

OrderDetail OrderDetailId {PK} Unique identifier of order detail int No

Price Order’s price decimal(18, 0) Yes

Description Order’s description nvarchar(MA

CreatedDate Date create order detail datetime Yes

CreatedBy Order detail creator nvarchar(30) Yes UpdatedDate Date update order detail datetime Yes

UpdatedBy Order detail updater nvarchar(30) Yes IsDeleted Value to check order detail is delete or not bit No

OrderStatus OrderStatusId {PK} Unique identifier of order status int No

Name Name of order status nvarchar(50) Yes

CreatedDate Date create order status datetime Yes

CreatedBy Order status creator nvarchar(30) Yes UpdatedDate Date update order status datetime Yes

UpdatedBy Order status updater nvarchar(30) Yes

IsDeleted Value to check order status is delete or not bit No

Promotion PromotionId {PK} Unique identifier of promotion int No

Title Promotion’s title nvarchar(50) Yes

Description Promotion’s description nvarchar(MA

EffectiveStartDate Effective start date date Yes EffectiveEndDate Effective end date date Yes CreatedDate Date create promotion datetime Yes

CreatedBy Promotion creator nvarchar(30) Yes UpdatedDate Date update promotion datetime Yes

UpdatedBy Promotion updater nvarchar(30) Yes IsDeleted Value to check promotion is delete or not bit No

{PK} Unique identifier promotion detail int No

PromotionPercent Promotion’s percent int Yes OriginalPrice Original price decimal(18, 0) Yes CreatedDate Date create promotion detail datetime Yes CreatedBy Promotion detail creator nvarchar(30) Yes

UpdatedDate Date update promotion detail datetime Yes UpdatedBy Promotion detail updater nvarchar(30) Yes

IsDeleted Value to check promotion detail is delete or not bit No

{PK} Unique identifier of promotion status int No

Name Name of promotion status nvarchar(30) Yes

CreatedDate Date create promotion status datetime Yes

CreatedBy Promotion status creator nvarchar(30) Yes

UpdatedDate Date update promotion status datetime Yes

UpdatedBy Promotion status updater nvarchar(30) Yes

IsDeleted Value to check promotion status is delete or not bit No

Service ServiceId {PK} Unique identifier of service int No

Name Service’s name nvarchar(50) Yes

Price Service’s price decimal(18, 0) Yes

CreatedDate Date create service datetime Yes

CreatedBy Service creator nvarchar(30) Yes

UpdatedDate Date update service datetime Yes

UpdatedBy Service updater nvarchar(30) Yes

IsDeleted Value to check service is delete or not bit No

ServiceStatu s ServiceStatusId Unique identifier of service status int No

Name Name of service status nvarchar(20) Yes

CreatedDate Date create service status datetime Yes

CreatedBy Service status creator nvarchar(30) Yes

UpdatedDate Date update service status datetime Yes

UpdatedBy Service status updater nvarchar(30) Yes

IsDeleted Value to check service status is delete or not bit No

ServiceType ServiceTypeId {PK} Unique identifier of service type int No

Name Name of service type nvarchar(50) Yes

CreatedDate Date create service type datetime Yes

CreatedBy Service type creator nvarchar(30) Yes UpdatedDate Date update service type datetime Yes

UpdatedBy Service type updater nvarchar(30) Yes

IsDeleted Value to check service type is delete or not bit No

Avatar Avatar of service type nvarchar(200

Supplier SupplierId {PK} Unique identifier of supplier int No

Name Supplier’s name nvarchar(50) Yes

CreatedDate Date create supplier datetime Yes CreatedBy Supplier creator nvarchar(30) Yes UpdatedDate Date update supplier datetime Yes

UpdatedBy Supplier updater nvarchar(30) Yes

Email Supplier’s email nvarchar(50) Yes

PhoneNumber Phone number of supplier nvarchar(11) Yes

IsDeleted Value to check supplier is delete or not bit No

Description Supplier’s description nvarchar(MA

PaymentEmail Email to use payment nvarchar(50) Yes

{PK} Unique identifier of supplier status int No

Name Name of supplier status nvarchar(50) Yes

CreatedDate Date create supplier status datetime Yes

CreatedBy Supplier status creator nvarchar(30) Yes

UpdatedDate Date update supplier status datetime Yes UpdatedBy Supplier status updater nvarchar(30) Yes

IsDeleted Value to check supplier status is delete or not bit No

Algorithms

Upon user login, our application identifies suppliers located within a designated distance from the user's location, ensuring that only those within a specific preset range are displayed in the search results.

To optimize user experience, it is essential to identify suppliers based on their proximity to the user's location, as each supplier has unique coordinates and varying distances Often, when users log into the system, the available suppliers may fall outside the designated distance zone or be close but not categorized within it Therefore, implementing a flexible algorithm is crucial for efficiently locating nearby and convenient suppliers for users.

To solve this problem, we should follow these steps:

Each time user logs in to application, nearby supplier list will be found and update through:

2 Get all available supplier coordinates in the system and sort in ascending

3 Find cross point in supplier list

4 Calculate nearest suppliers from user location and add to supplier list

5 If supplier list is not empty, the nearby supplier list will show

6 The nearby list structure will be as bellow: o Nearby list is not empty, system loads nearby list into home page o Nearby list is empty, predefined list will be display to home page

In total, the complexity of this algorithm is N

Figure 69: Find nearby vehicle flow chart

Notification is a feature of ACSA application to notify customer and supplier when important events occurs

 Show notification icon on web interface

Type Trigger Receiver Notify method

1 User creates new account Admin Web

2 Supplier creates new service Admin Web

3 Supplier create new branch Admin Web

4 Supplier create new promotion Admin Web

3 Supplier sends update request Admin Web

4 Employee approve create / update request Customer Application

5 Contract is start created Supplier Web

6 Customer is finished booking Supplier Web

7 Supplier is complete create bill Customer Application

8 Contract is expired Customer Application

9 Contract is cancelled by customer Supplier Web

10 Refund request is resolved Customer Application

System Implementation & Test

Software User’s Manual

Ngày đăng: 05/08/2021, 21:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN