0% found this document useful (0 votes)
4 views

SE - list of project

The document outlines various software engineering project management systems for different sectors including cinema, garage services, libraries, and stores. Each section details the management processes, modules, and functionalities required for efficient operation, such as ticket sales, car repairs, book borrowing, and inventory management. The projects aim to streamline operations and enhance user experience through well-defined modules and statistical reporting features.

Uploaded by

huyphan1610
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

SE - list of project

The document outlines various software engineering project management systems for different sectors including cinema, garage services, libraries, and stores. Each section details the management processes, modules, and functionalities required for efficient operation, such as ticket sales, car repairs, book borrowing, and inventory management. The projects aim to streamline operations and enhance user experience through well-defined modules and statistical reporting features.

Uploaded by

huyphan1610
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

THE POSTS AND TELECOMMUNICATIONS INSTITUTE OF TECHNOLOGY

DEPARTMENT OF INFORMATION TECHNOLOGY 1

PROJECT LIST OF
SOFTWARE ENGINEERING

Nguyen Manh Hung

Last updated: 2022


Table of index

1. Cinema management..........................................................................................................3
2. Garage car service management.........................................................................................5
3. National library management.............................................................................................7
4. Store management..............................................................................................................9
5. Vehicle/motobike rental management..............................................................................11
6. Spa management ..............................................................................................................13
7. Restaurant management...................................................................................................15
8. Open tour management....................................................................................................17
9. Chess championship management....................................................................................19
10. F1 formula championship management........................................................................21
11. Book rental management................................................................................................23
12. Mini football field management.....................................................................................25
13. Karaoke management.....................................................................................................28
14. Parttime employee management....................................................................................30
15. Costume rental management..........................................................................................32
16. Parttime worker supply management............................................................................34
17. Foreign language center management...........................................................................37
18. installment loans management ......................................................................................39

2
1. Cinema management
• The company has a chain of cinemas (cinema code, theater name, address,
introduction).
• Each cinema has many screening rooms (room code, number of seats, room
characteristics)
• Each movie (Movie ID, movie title, type, year of production, description) can be
shown in different cinemas at different times
• Each screening room can show many movies at different times
• At the time, in a screening room only one movie is shown, and sold at a fixed ticket
price.
• The same movie, showing at the same screening room, but in different time slot and
dates may have different ticket prices.
• Same show, different seats may have different ticket prices.
• Employees only sell tickets to customers when the screening room at the showtime
requested by the customer is still full of empty seats for the customer.
• When buying tickets, customers are issued an invoice containing the tickets purchased.
Each ticket on one line: movie name, screening room, showtime, seats, offer, price.
The next line is the total amount.
• The cinema also sells fast food services (such as popcorn, drinking water...).
Customers can purchase with movie tickets (in which case, the bill will include these
services), or buy separately. If buying separately, issue a separate invoice, each line is
an item: code, name, unit price, quantity, incentives, money. The next line is the total
amount.

1. Module "Schedule showing": A staff selects the showtime management menu →


selects a new showtime schedule → the show scheduler interface shows out → The
staff selects movie from the drop-down list + selects a screening room from the drop-
down list + showtimes and selects ticket prices from the drop-down list + click add
showtimes available room of the time slot or available time slot of the selected
screening room → The fare pricing interface appears with the default fare for all seats
of the show -> The staff can select some seats and prices and confirm -> System save
to database.

2. Module "Selling movie tickets": A staff selects the ticketing menu when a customer
requires → the ticketing page appears → The staff selects a screening room or movie
name in the drop-out list (as the request of the guest) + select the show time slot →
The staff asks the customer to choose the available seats in the screening room →
print out the ticket and invoice for the customer which contains a list of ticket, a ticket

3
has: room name, seat number, date showtime, movie name, price per ticket. The next
line is total bill amount.

3. Module "Selling food": A staff selects the food service sale menu when a customer
requires → a sales page appears → The staff repeats the following steps until all the
items requested by the customer: enter the name of the item and click search → the
interface of the list of items containing the entered keyword appears → clicks on an
item → the interface choose the size, the quantity will appear → selects the size of the
food and drink, enters the quantity and clicks OK → the interface of the selected items
will appear as the invoice contains the items, each line contains: code, name, size, unit
price, quantity, amount. The last line is the total amount → The staff clicks to pay. The
system prints out invoices for customers.

4. Module "Revenue Statistics": A staff selects the statistics menu → selects revenue
statistics by movie (or by theater) → enters the start and end time of statistics → a list
of available movies (cinemas) appears, one line for each movie: Code, movie name,
total number of tickets sold, total revenue earned, sorted in descending order of total
revenue -> clicks on a line of a movie (theater) -> The system displays the details of
the total income for each showing of the movie, each corresponding line: showtime,
quantity tickets sold, total income, sorted in the order of showing from old to new ->
clicks on a show to display a list of invoices sold for that show, each invoice on 1 line
arranged by payment time: code, customer name if any, total number of tickets, total
amount of the bill (only those tickets related to that show in the invoice).

4
2. Garage car service management
• Each customer (Code, name, phone number, address, note) can have many cars (code,
number plate, model, make, description)
• A car can be brought in for repair more than once. Each visit to the garage can use
many services and replace many parts.
• The garage has many technicians to repair cars. The garage also has many slots to
repair multiple cars at the same time. At a time, the maximum number of cars being
repaired is equal to the number of technicians or the number of slots of the garage
(whichever is smaller, that counts).
• When a customer takes the car to repair, the Technical Manager will check the
condition of the car and make a list of the services that will be done + the parts that
will be replaced. This information is saved in the system. After that, deliver the car to
a technician who is still free to put the car in an empty slot for repair. If there are no
free technician or there are no empty slots, then the customer's car has to wait.
• After receiving the car and putting it into the slot, the technician will go to the spare
parts warehouse to receive the listed parts for the vehicle as the listed list when
receiving the car.
• After the repair is completed, the technician will return the car to the technical
manager for final inspection before handing it over to the customer.
• Technical staff will give invoices to the customer to pay with accounting staff. After
payment, the customer can receive the car back.
• Components and spare parts are imported by garage from suppliers (code, name,
address, email, phone, description). Multiple components can be imported at a time,
each with a different quantity. Invoices for importing components must clearly state
the supplier, the components on a table, each line corresponds to a component: code,
name, unit price, quantity, and amount. The last line shows the total amount.
• Monthly, the garage pays salaries to employees based on the basic salary and revenue
from the services that employee has performed in the month (for technical staff).

1. Modul "Receiving a car": Customer brings the car → The Technical manager receives
the car and does a technical check, then selects the menu to receive the car → the page
to find the customer by name appears → enters the customer's name and find → the
interface of the list of customers whose name contains the entered keyword appears (if
not, add a new customer) → click on the correct customer → the interface of the list of
cars of that customer that has been repaired appears (if not yes, then click add a new
car for the customer) → the interface to enter services and spare parts appears ->
repeats the following steps until the end of service/parts at the customer's request:
click more services/parts event → service/component search interface appears →

5
enter the name and search → interface list of services/components with the name
containing the keyword you just entered appears → click select service/component +
enter quantity (price is available at the moment) and confirmation →
service/component added to customer's temporary invoice → After adding
services/parts as requested by customer, click confirm → the system saves and prints a
temporary invoice to attach car.
2. Module "Payments and returning cars to customers": Cashier selects payment menu
→ invoice search page appears → enters invoice code on the temporary invoice
brought by the customer (after receiving from technical manager) → a detailed invoice
interface for the customer appears, with customer information, car information, and a
list of used/replaced services/parts, each service/part event on one line: id, name, unit
price, quantity, to money. The last line is the total amount (Customer checks and can
ask to change, add or remove used components/services to be exact with reality) →
receives payment from customer and click paid → The system saves invoices and
prints them out for employees and customers to sign.
3. Modul "Statistics of services/components by revenue" : A manager selects the
statistics menu → selects service/components statistics by revenue → enter the
starting time - ending statistics list → the results page shows a list of services/parts,
each line corresponds to: code, service/equipment name, total quantity provided, total
revenue (sorted by total revenue, from high to low) → clicks on a line of a
service/part, the details of the times that service/part is used, each corresponding line:
date, customer name, vehicle name, translation name service/equipment, unit price,
quantity, payment (sorted by payment date in ascending order).
4. Modul "Monthly sales statistics": A manager selects the statistics menu → selects
monthly sales statistics → the results page displays a list of the last 12 months (in
chronological order time): month name, total revenue → click on 1 line of 1 month,
the details of the bill of that month will be displayed, each line corresponds to: date,
customer name, vehicle name, total number of services / parts event, total amount →
click to view an invoice → detailed invoice interface appears as when paying for
customers.

6
3. National library management
• Each book title (Code, name, author, publication year, cover price, quantity, barcode,
description) can be borrowed many times by many different readers.
• Each reader has a reader card containing the reader's code, name, date of birth,
address, phone number, barcode
• Up to 5 books can be borrowed at a time, and the total number of books being
borrowed by one person cannot exceed 5 books
• The maximum duration to borrow a book is 1 month from the date of borrowing that
book, if the reader returns it after this time, he will be fined 20% of the book cover
price.
• Each time a reader returns borrowed books, he can return part or all of the borrowed
books
• When borrowing new books, the librarian can still see a list of books that the reader
has borrowed and paid or not paid before.

1. Module "Borrowing of books": A staff chooses the book borowing menu → scans the
reader card to get reader information → reader detail information appears + list
unreturned books + returned book list → The staff scans selected books one by one →
the list of borrowed books is added until the books to borrow (or up to 5 books) are
exhausted, then submit → print out a loan slip containing the code, name, reader
barcode, bar code of the loan slip, and a list of books that are still borrowed, each title
book on one line: code, title, author, barcode, loan date, due date and The last line
shows the total number of books being borrowed.

2. Module "Returning of books": A staff selects the return menu → scans the reader
card to get reader information → reader detail information appears + a list of
unreturned books + returned borrowed books → The staff scan returned books in turn
→ the list of borrowed books is shortened until the end of borrowed books (or all the
books returned by readers are scanned) then submit → print out a loan slip (if there are
still books on loan) containing the code, name, reader barcode, loan card barcode, and
a list of books that are still borrowed, each title on one line: code, title, author,
barcode, Borrowing date, due date and last line total number of books on loan +
penalty slip (if fined) containing code, name, reader barcode, loan coupon barcode,
and list of fine (late return books, damaged, lost...), each end books on one line: code,
title, author, bar code, date borrowed, due date, pay date, fine amount and last line the
total amount of the fine.

7
3. Module "Statistics of borrowed books": The staff selects the statistics menu →
selects the statistics of borrowed books → enter the time period (start - end) → the list
of borrowed books are displayed in order of the number of loans from most to least,
each line contains: code, book title, author, barcode, total number of loans. The staff
clicks on a line of a book to display a detailed list of times that reader has borrowed
that book, each line contains: reader name, borrowed day, returned day, the fine if any.

4. Module "Statistics of readers": A staff selects the statistics menu → selects the
statistics of readers → enter the time period (start - end) → list the most readers are
displayed in order of the number of books borrowed from most to least, each line
contains: code, name, date of birth, reader's address, total number of books borrowed.
The staff clicks on a line of a reader, the details of the loan slips with information on
the date of borrowing, the total number of books of each loan will appear.

8
4. Store management
• Each item (Item code, name, description) can be imported many times, each time has
different quantity and different price, coming from a supplier ( code, name, address,
phone number) are different
• You can import many different items at a time
• Each imported time there is an imported bill with supplier information, followed by a
list of imported items, each item has full information: code, name, quantity, unit price,
and total amount (automatically calculated) and the last line is the total amount of the
imported bill
• Similarly, each item can be exported many times, each time to different sub-agents
( code, brand name, address, phone number), with different quantities and different
export prices.
• Each export time can export many items, as long as the export quantity does not
exceed the number of goods in the store
• Each export time has an export bill with sub-agent information, followed by a list of
exported items, each item has full information: code, name, quantity, unit price, and
total amount (automatically calculated) and the last line is the total amount of the bill.

1. Module "Importing": A staff selects the import menu → the import page appears with
the search box for providers → enters the name of the provider and clicks to search →
the system displays a list of providers whose names contain the entered keyword →
clicks the line of the correct provider (in case of new provider, it must be added) →
the system displays the interface to find imported item → The staff enters the name
item and click search → the system displays a list of items whose names containing
the keywords entered (if there is no results, it must be added) → the employee selects
the correct item in the list + enters the quantity + unit price → the item appears in the
list of imported items → repeat until all the items need to be imported, then submit →
the system saves and prints out the import bill as described.

2. Module "Exporting": A staff selects the export menu → the export page appears with
the search box for sub-agence → enters the name of the agent and clicks to search →
the system displays a list of agents whose names contain the entered keyword →
clicks the line of the correct sub-agence (in case of new sub-agence, it must be added)
→ the system displays the interface to find exported item → The staff enters the name
item and click search → the system displays a list of items whose names containing
the keywords entered → the employee selects the correct item in the list + enters the
quantity + unit price → the item appears in the list of exported items → repeat until

9
all the items need to be exported, then submit → the system saves and prints out the
export bill as described.

3. Module "Statistics of items": A manager staff selects the statistics menu → selects the
function of item statistics → enter the statistical period (start - end) → the results show
a list of item in order of total revenue from the most to the least in the selected period,
each line has the following information: item code, item name, quantity sold, the total
revenue during the selected time period. The staff clicks on a line of an item to display
detailed statistics of invoices of sub-agents who have purchased that product.

4. Module "Statistics of sub-agence": A manager staff selects the statistics menu →


select the top sub-agence statistics function → enter the statistical period (start strat -
end) → the results show a list of sub-agence in order of the most total revenue to the
least in the selected time period, each line has the following information: sub-agence
code, name, the total revenue from the sub-agence during the selected period. The staff
clicks on a line of an sub-agence, a detailed list of invoices (date, total number of item,
total amount) of each time the sub-agence has imported item will appear.

10
5. Vehicle/motobike rental management
• The shop has many cars (code, name, number plate, model, make, model, description)
for rent.
• Each customer (code, name, address, phone number, note) can rent multiple cars at the
same time.
• The shop can accept car consignment from the partners who have idle cars and want to
rent them through the intermediary of the store. When receiving consignment, the
store signs a consignment contract (contract) with a partner. When a customer rents
the right car of the partner and the shop is out of car, the store will contact the partner
to see if it can be rented for the time requested by the customer. If yes, the store will
sign a car rental contract with the partner at the import price, and sign a contract with
the customer at the export price and enjoy the difference.
• Customers renting a car will sign a contract with the shop, and have to make a deposit
+ place a mortgage (as a trust). Each contract can have more than one collateral.
Information about the pledged assets is clearly stated in the contract, and will be
returned to the customer after liquidation of the contract. The contract also clearly
states the current condition of the rented car after reaching agreement between the
store's staff and the customer.
• When the customer returns the car and liquidates the contract, the customer checks the
condition of the car, if there is any damage compared to the condition before receiving
the car, the customer must pay an additional fine. A rental car can have many fines. All
additional fines are clearly stated in the payment invoice when liquidating the contract

1. Modul "Rental": A staff selects the car rental function at the request of the customer
→ the customer search interface appears → enters the customer's name and searches
→ the customer list whose name contains the entered keyword appears (if not, add
new customer information) → click on the corresponding customer name → the car
search interface appears → enter the start date, end date of the rental, type of car want
to rent → the result shows a list of available cars on demand: car name, number plate,
model, car brand, unit price, description → selects the car at the customer's request
(and repeats from the search step if customer wants to rent more than one car), if the
car has an existing fault, find the fault in the error list (if not, add a new fault), select
and add to the list of available faults of the car before renting → interface Temporary
contract appears with customer information, selected vehicle information, each vehicle
has additional information about vehicle condition in accordance with customer's
agreement → click on additional collateral and add until all assets are listed.
Customer's guarantee + extra amount Customer's deposit into the contract and click
confirm → the system saves the result in the system, and prints the contract for the
customer and employee to sign, receive the deposit and collateral and deliver the car.
2. Modul "Return": When the customer brings the car to return, a staff selects the menu
to find the list of rented cars by the customer's name → enter the customer's name +
click search → the system displays the list of customers with the name just entered →
selects the correct customer name with the current customer information → the system
displays a list of cars that that customer is renting, each car on a line with full
information about the car, rental date, rental price, and the rental amount up to the date

11
of payment, the last column is the check box to select pay → clicks on the button to
pay for the cars that the customer pays (may not be paid all) → information display
interface payment invoice: customer information, vehicle information (may be many
cars), rental date, payment date, unit price, total amount, received deposit, remaining
amount to be paid, list of guaranteed assets guarantee → If there is a damage, selects
or adds the damage to be compensated, the total payment, repeats for all defects of
each returned vehicle → clicks confirm → the system saves the results and prints
invoices for employees and customers to sign, pay, receive cars, pay collateral.
3. Modul "Statistics of vehicle lines by revenue": A manager staff selects the function of
statistics of vehicle lines by revenue → the interface selects the current statistical time
(start/end date) appeared → click statistics → results appear including a list of
detailed car models: code, name, total number of rentals, total rental days, total
revenue, sorted by revenue, from high to low → click on a car line to see details → A
list of vehicles in that line will appear, one for each vehicle: code, name, number plate,
model, brand car, total number of rentals, total rental days, total revenue, sorted by
total revenue in descending order → click on a vehicle to see details → the interface
shows a list of those car rental invoices in the given time select, each line: id, customer
name, rental date, payment date, unit price, total amount, total fine, total amount,
sorted by date of hire.
4. Modul "Customer statistics by revenue": A manager staff selects the function of
customer statistics by revenue → interface selects time statistics (start - end date)
appears → After selecting, click statistics → the results appear including a list of
detailed customers: code, name, address, phone, total rental, total rental date, total
revenue sorted by total revenue from high to low → clicks on 1 line of a customer, the
system displays a detailed list of bills paid by that customer in the selected time, each
invoice on 1 line: id, rental date, payment date, quantity car, car rental amount, fine
amount, total amount arranged in chronological order of bill payment.

12
6. Spa management
• A spa provides many services - beauty services (Code, name, category, unit price,
description)
• Each service staff can serve some services.
• Each serviece may need slots to serve. At the same time, the number of customers of a
service being served is maximum equal to the number of slots or the number of service
staff serving that service. If the number of customers is greater than that threshold,
they have to wait in queue. Customers could make a reservation before coming to the
store. If customers make reservations in advance, they will be served on time.
• When receiving the customer, the staff will ask the customer to make a list of services
+ materials that the customer will use, and at the same time assign the idle service staff
corresponding to the services that the customer chooses to serve the customer.
• When paying, the customer receives an invoice clearly stating the list of services +
used materials (for example, for hair dyeing, the cost of dyes will be charged
separately, the fee for dyeing will be calculated separately).
• Service staff are paid according to the basic salary + service commission. Monthly
salary slip clearly stating the basic salary and a list of services that the staff has served
during that payment period.
• The materials for the operation of the store are imported from suppliers. Each import
can import many different materials from the same supplier, each material can have a
different quantity and unit price for each import.

1. Modul "importing materials": Employee selects the import menu → the import page
appears with a search box for suppliers by name → User enters name + clicks search
→ the system displays a list supplier whose name contains the entered keyword →
click on the currently imported supplier (if the supplier is new, add a new one) →
Repeat the following steps until the end of stock/imported materials: click to search
for material by name → enter name + click search → The system pops up a list of
material containing the name just entered → the employee chooses the name of the
material in the list of available (if the material are new, choose to add new one) + enter
the quantity (edit the imported unit price, if necessary to change the price) → that
invoice will be added to the list of invoice entries → repeat until all the input items are
finished, then submit → report successful import and print out the imported invoice as
described.
2. Module "Receiving customers": A receptionist selects the function of receiving
customers → the interface to find the booking schedule appears (if the customer has
not booked an appointment, go to find an empty slot) → enters the customer's name
and search → the list of appointments will appear for customers whose name contains
the keyword entered → selects the correct one for the customer being received →

13
Service/material input interface appears → The staff asks customer and enters the
service name + select search → Results appear including a list of detailed services →
selects a service exactly as the customer calls → Service name + quantity +
provisional amount added to the list of selected services. The staff repeats these steps
to select services/materials until all the services/materials required by the customer are
entered → The staff clicks to assign service staff → the interface shows a list of
corresponding free service staff corresponding to each service → selects a service staff
for each service and confirms → the system saves and the receptionist informs the
customer.
3. Module "Payment": Customer asks employee to pay → Employee selects payment
function → slot selection interface appears with a list of slots or Customer → The staff
selects the correct slot for the customer. → The customer's detailed invoice interface
contains customer information, a list of materials/services that the customer has used,
each line: id, name, type, unit price, quantity, and money. The last line is the total
amount (Customer can ask the staff to add/reduce/change the services/materials used
to match reality, if there is a mistake) → The staff informs customer of the amount →
After payment, the customer llick confirm → the system saves and prints detailed
invoices for customers.
4. Modul "Statistics of services by revenue": A manager selects the function of service
statistics by revenue → the interface selects the statistical time (start - end date)
appears. → After selecting, click statistics → the results appear including a list of
detailed services: code, name, type, total number of servings, total revenue (sorted by
revenue descending) → The manager clicks on a line of a service, the system displays
detailed invoices for that service, each invoice on 1 line: id, customer name if any,
service date, unit price, total amount collected (arranged in chronological order of
payment).

14
7. Restaurant management
• The restaurant has many tables (Table code, name, maximum number of guests,
description). Many small tables can be merged into one large table upon request from
a large group of guests.
• Each table, can be booked many times in a day, or in different days.
• Each customer (Code, name, phone number, email, address) can book many times,
each time can book many tables (in this case, it will be merged into 1 table)
• Restaurants can make combos that combine a number of dishes that are enough for
one meal for one person to eat. Customers can call available combos like this.
• Customers at each table can order multiple dishes (Code, type, name, description,
current price) or combo. Each dish (combo) can be ordered with a different amount.
• When paying, the invoice contains all information: desk code, name and code of staff,
customer name if any, then a table, each line contains information about an used item
(combo): id, name, unit price, quantity, amount. The last line shows the total amount
of the invoice.

1. Module "Book a table": A staff selects the table reservation function when a customer
calls → the interface to find an available table appears → The customer enters the date
+ time of booking + the number of guests and presses the button search → results
appear including a list of available tables on that date and time: code, name, maximum
number of guests, description → Customer selects a table according to customer's
choice → Customer information input interface appears → The staff asks the customer
and enters the code, name, phone number, email, address and click search → The
system displays a list of customers whose name contains the entered keyword, each
customer on 1 line: code, name, phone number, email, address → The staff clicks on
the right line with the currently booked customer (if not, click add a new customer) →
The system displays full table information + customer information + date and time of
booking → The staff confirms with the customer and click confirm → The system
saves the booking information in the database.

2. Module "Order": A staff selects the ordering function → the table interface appears
with a drop-down list of tables → selects the correct table for the customer who is
ordering → The interface to enter the ordered dish appears → The staff asks the
customer and enters the name of the dish + selects search → the results appear
including a list of detailed dishes: code, type, name, price. → The staff selects 1 dish
exactly as customer ordered → Required to enter quantity → enters quantity and click
OK → Dish name + quantity + subtotal added to the list of selected dishes below. The

15
staff repeats these steps of choosing dishes until all the dishes that customers in the
table have ordered. The staff reads again to confirm with customer → click confirm
→ system saves.

3. Module "Payment": Customer requests a staff to pay → Staff selects payment


function → Table selection interface appears with a list of tables → Customer selects
the table matches the customer's table → The detailed invoice interface of the table
appears as described above (can add/edit the ordered items in the bill, if necessary) →
The customer asks if the customer has a coupon. → if yes, then click add coupon +
enter code → invoice interface add coupon line and update total amount to pay → The
staff informs customer the amount → After payment, the staff clicks confirm →
system saves and prints detailed invoices for customers.

4. Module "Statistics of dishes": A manager staff selects the function of statistics of


dishes → the interface to choose the periode of statistics (start - end date) appears →
After selecting the periode, the staff click statistics → the results appear including a
list of detailed dishes: code, type, name, total number of sales, total revenue (Sorted by
total revenue, from high to low). The staff clicks on a line of a dish, the system
displays a detailed list of times the dish was ordered: id, guest name, date and time,
quantity, amount.

16
8. Open tour management
• Each tour (Tour code, name, departure place, destination, description) can depart on
many different days, depending on the departure date and the number of people
buying the tour for each group will have different prices.
• Each tour can have a schedule to go through many different tourist sites. At each site,
each tour can use different services of different providers.
• Each customer (Code, name, ID number, ID card type, phone number, email, address)
can buy tickets for many different tours. Each tour can buy a different number of
tickets. Each purchase is issued an invoice specifying tour information, departure date,
tour price, number of guests, name of customer representative, total payment amount.
• The same customer can go on the same tour multiple times, only differing in departure
date and ticket price.
• Customers can return tickets and have to pay the fine of ticket cancelation.

1. Modul "Lên lịch trình một tour" cho phép quản lí (QL) lên lịch trình một tour với mô
tả chi tiết nghiệp vụ: QL chọn menu quản lí tour → trang quản lí hiện ra → QL chọn
chức năng lên lịch trình tour → giao diện lên lịch tour hiện ra, QL lặp các bước sau
cho đến khi hết dịch vụ trong lịch trình: QL nhập tên địa điểm hoặc dịch vụ cần thêm
vào lịch trình và click tìm kiếm → danh sách các địa điểm/dịch vụ có tên chứa từ
khóa hiện ra → QL chọn 1 địa điểm/dịch vụ, trường hợp đang thêm dịch vụ thì sau
khi chọn dịch vụ, các nhà cung cấp dịch vụ đó với đơn giá tương ứng hiện ra → QL
chọn một nhà cung cấp và lặp lại các bước trên. Sau khi hết các địa điểm và dịch vụ
của lịch trình, QL click submit → hệ thống lưu thông tin vào CSDL và thông báo
thành công.
2. Module "Buy tickets": A staff selects the function to buy tickets requested by a
customer→ tour search interface (by destination name) is displayed → The staff enters
the destination name and click search → The results appeared include a list of
available tours corresponding to the selected criteria, each tour displays compelete
information + departure date + corresponding price at the time of search → The staff
selects 1 tour according to customer's choice → Invoice (ticket) details will be
displayed: tour name, departure place, destination, departure date, name of the
delegation representative, ID number, ID type, guest address, phone number, email,
number of guests, price ticket → The staff selects payment → customer pays → the
system saves the result and prints the ticket for the customer.

3. Module "Revenue statistics by site": A manager staff selects the function of revenue
statistics by tourist site → interface selects statistical periode (start date - end date)
appears → The satff enters the periode and clicks view statistics → the results appear

17
including a list of detailed site, sorted by total revenue, from high to low: name,
number of tours including that site, total number of visitors to that site, total revenue.
The staff clicks on a line of a site, the system displays a detailed list of customer
invoices who have ordered tours through that site, each invoice on 1 line: id,
customer's name, departure date and time, name tour, total number of guests, total
amount.

4. Module "Tour statistics by revenue": A manager staff selects the function of tour
statistics by revenue → the interface selects the periode (start date - end date) → The
staff enters the start/end time and clicks view → results appear including a list of
detailed tours, sorted by total revenue, from high to low: code, name, place of
departure, destination, average number of guests/tour, total revenue. The staff clicks
on a line of a tour -> the system displays a detailed list of customer invoices who have
ordered that tour, each invoice on 1 line: id, customer's name, departure date and time,
total number of guests, total amount of money.

18
9. Chess championship management
• Each tournament (Code, name, year, time held, location, description) allows multiple
players (code, name, year of birth, nationality, Elo coefficient, notes) to participate.
• There may be hundreds of players involved, but each player must play 11 matches
according to the Swiss rule.
• In the first game, the players are ranked in order of Elo coefficients from high to low.
Then going from the top to the bottom of the arrangement, two players standing next
to each other will form a pair for round 1.
• In each round, win 1 point, draw 0.5 point, lose 0 point. After each round, the results
of each match are updated according to the previously scheduled matches. At the same
time, the Elo coefficient increasing or decreasing after each round is also updated
(Calculated by FIDE's formula, just enter the results).
• Starting from the 2nd round, the temporary standings after the previous round are
ranked according to the following criteria: total score (descending), total score of
opponents met (descending), Elo coefficient ( decrease). And the match is determined
as follows, going from top to bottom of the provisional standings, for each unpaired
player, that player's opponent is the first player encountered and satisfied: no match,
and haven't met the considered player.
• After 11 such rounds, the top player in the ranking will be the champion.

1. Module "Update results": A staff selects the results update menu → the results update
page appears → The staff selects the round from the drop-down list + select a match
from the list that comes out by round + enter the number of points and Elo points for
the 2 players of the match + click Update → The system will notify you that the match
result is successfully saved and return to the round + match selection interface.

2. Module "View leaderboard": A staff selects the statistics menu → select the function
to view the standings after each round → select the round from the drop-down list →
the results show a list of players, each with full information: id, name, year of birth,
nationality, total score, total score of opponents met, instant Elo coefficient (Sorted in
the order described above). Clicks on a player -> list of played match results appears,
each match has: id, name of the opponent player, result (win, draw, loss), and the Elo
increasement/decreasement after the match.

3. Module "Pair scheduling": A staff selects the scheduling menu → the schedule page
appears → The staff selects the previous round in the dropdown list → the system
shows the current standings after the selected round + the Schedule button → The staff

19
clicks the Schedule button → The system automatically matches the players according
to the rules described above, and shows the list of tables in the correct order of
matches (table name, name of the two player) → The staff clicks Save → The system
saves the schedule of the new round in the database

4. Module "Statistics of Elo change": A staff selects the statistics menu → select the
function of Elo change statistics of the chess players after the tournament → the
results appear: List of players, each player is shown full information: code, name, year
of birth, nationality, old Elo coefficient, new Elo coefficient, increased/decreased Elo
coefficient (sorted in descending order of the increase or decrease of the Elo
coefficient of the oddities, followed by the descending of the new Elo coefficient).
Click on a line of a chess player → the system displays the details of the matches that
the player has played, each match on 1 line: id, opponent's name, result (win, draw,
loss), Elo increase or decrease.

20
10. F1 formula championship management
• There is a championship every year. A tournament consisting of many races taking
place around the world (Race code, name, number of laps, location, time, description).
• Each tournament has many participating teams (Code, name, brand, description).
• Each racing team has many riders (code, name, date of birth, nationality, biography).
But in each race, each team is only allowed to allow a maximum of 2 riders to
participate.
• Each driver can play for many racing teams at different times. But at a time only play
for 1 team.
• For each race, the results are ranked in order of finishing (time) and the score is only
calculated for the top 10, respectively in the order of finishing 25, 18, 15, 12, 10, 8, 6,
4, 2, 1.
• If the driver is in the top 10 but does not finish due to a dropout or an accident, then 0
points.
• The score and time of each driver will be added up between the stages to decide the
individual and team prizes of the season.

1. Module "Register to racing": A staff selects the racer registration function required by
the team → the racer registration interface for each stage appears → The staff selects
the race from the drop-down list + select a racing team from the drop-down list → a
list of racers of the selected team appears, sorted by their alphabetic order of name →
The staff ticks the correct 2 racers according to the team's request + click Save → The
system saves information.

2. Module "Update results": A staff selects the function of entering race results → the
result input interface appears → The staff selects the race name from the list drop-
down → The list of registered racers for the race appears in the form of a table, each
line contains blank boxes to enter the time to the finish line, the number of laps
completed → The staff enters all the results of all racers and click Save → The system
saves the results to the database.

3. Module "View the racers' standings": A staff selects the statistics function → Select
to view the current racer rankings → The staff selects a stage from the dropdown list
-> The system displays a list of racers in the form of a table, each line contains:
Racer's name, nationality, team name, total score after the selected stages, total time
after stages (sorted in descending order of total score, then in ascending order of total
time). The staff clicks on a line of a racer → the system displays the detailed results of

21
each race stage given by that racer, each stage on one line: stage name, finish rank,
score, time to finish.

4. Module "View the team rankings": A staff selects the statistics function → Select to
view the current racing team rankings → The staff selects a stage from the dropdown
list → The system displays a list of racing teams, in the form of a table, each line
contains: Team name, team owner, total points of the team's drivers after stages, total
time after stages (sorted in descending order of total score, then in ascending order of
total time). The staff clicks on a line of a racing team → the system displays detailed
results for each stage of that racing team, each stage on 1 line: race name, total score,
total time of the 2 racers in the team.

22
11. Book rental management
• The store has many book titles. Each book title has a different quantity and a different
rental price (rental per day).
• Each book title can be borrowed by many customers. Each customer can borrow many
books each time.
• Each time of borrowing, the borrower will receive a loan voucher. In which, the first
line contains the name of the customer and the date of the loan. Information for each
borrowed book is written on a line: name, author, publisher, year of publication, rental
price. The last line shows the number of borrowed book titles.
• When returning, the customer will receive a payment invoice. In it, the first line
contains the customer's name and payment date. Information for each paid book is
written on one line: name, author, publisher, year of publication, date of borrowing,
date of payment, rent, amount. If fined, there is an additional column of fines. The last
line shows the total amount of the payment.

1. Module "Borrowing": After selecting books to borrow, a customer takes them to the
cashier counter to make loan slips. A librarian staff enters the customer's name and
searches → The system returns a list of customers whose name contains the name
entered → The staff clicks on the customer's name in the list (if the customer borrows
for the first time, enter a new one) → The system displays the interface to add
borrowed books: For each book title, the staff clicks to search for book by name →
enter the title of the book + click search → the system displays a list of the book titles
whose name contains the entered name → The staff clicks on the correct line with the
book selected by the customer → System adds 1 line corresponding to the borrowing
list. When finish the book list, the staff clicks to create a loan slip → The system saves
the loan slip and displays the loan slip on the screen → The staff clicks to print → The
system prints the loan slip for the customer.
2. Module "Return and pay": When a customer returns books, a staff selects the menu
to find a list of borrowed stories by the customer's name → enter the customer's name
+ click search → system displays a list of customers whose names contains entered
keyword → The staff selects the correct customer name → the system displays a list
of book titles that the customer is borrowing, each title on a line with full information :
code, name, the date of the loan, the loan price, and the rental amount up to the date of
payment, the last column is the check box to choose to pay → The staff clicks on the
return button for the book titles that the customer has returned (may not pay all 1
times), enters the status of the book and the fine if any, finally click the payment

23
button → the system displays the invoice with full customer information + a list of
returned book titles as described above + the last line is the total payment → The staff
clicks confirm → the system updates to the database.
3. Module "Statistics of borrowers": A staff selects the menu of statistics of customers
→ Enter the time period (start - end date) statistics → system displays a list of
customers who borrow a lot in the form of a table, each line corresponds to a
customer: code, name, idcard number, phone number, address, followed by the column
of total number of loans, column of total amount paid (Sorted in descending order of
the total number of loans, followed by the descending direction of the total amount
paid). The staff clicks on 1 line of a customer → the system displays the details of the
invoices that customer has borrowed, each invoice on 1 line: borrowed date, total
number of books borrowed, total payment amount.
4. Module "Statistics of book": A staff selects the menu statistics of the most borrowed
book → Enter the time period (start - end date) statistics → The system displays a list
of borrowed titles in a table format, each line corresponds to a book title: code, name,
author, publisher, year of publication, column total number of times borrowed, column
total amount (Sorted in descending order of the total borrowed column, followed by
the descending of the total income column). The staff clicks on 1 line of a book → the
system displays the details of the invoice with that book borrowed, each invoice on 1
line: id, name of the borrower, borrowed date and time, payment date and time, total
payment amount.

24
12. Mini football field management
• The football field has many mini courts for rent. Depending on customer
requirements, it is possible to combine 2 or 4 adjacent small courts into 1 large court
for rent.
• Each court can be rented by many customers at different time slot. Each customer can
rent many different courts.
• Customers can rent the court by session of the week or by month (on one or a number
of fixed sessions a week, within a few specific months).
• When making a contract to rent a court, customers receive a rental voucher. In it, the
first line records the date of the contract, the owner's information, and the customer's
information. The next lines, each line record a mini court with full information about
the court, rental price per session, rental time slot of the week, start date, end date of
the rental period, total expected rent. The last line shows the expected rental amount
• When booking a court, customers must deposit in advance. And this deposit
information is also clearly stated in the invoice/bill.
• When customers come to play football at the court, the owner can serve refreshments
and snacks. What kind of products do customers use each session, how many bottles
(packs) of each type, and how much total money is updated into the system. The
customer will pay this incidental fee at the end of the rental period.
• When paying for the court rental, the customer receives an invoice detailing the rental
information and the cost of the rental, just like the booking slip. There may be some
additional sessions arising or rescheduled according to customer requirements. In
addition, the next part of the invoice states the food and drink used in each session,
each session is listed in a table, in which each line of the table describes an item: code,
name, price, quantity used, total money. The total amount of each session and the total
amount for the whole booking.
• The yard manager must import the items for sale from many different suppliers (code,
name, address, email, phone, description). Each time of importing goods, there is an
import invoice specifying supplier information and a list of items, each line: id, name,
unit price, quantity, amount. The last line is the total amount.

1. Module "Booking": A customer comes to book a → A staff selects the booking


function → the system displays the interface to find an empty court according to the
time slot → The staff enters the time slot + select the type of court as requested by the
customer + click search → the system displays a list of available courts according to
the selected time slot → clicks on a courts → the system displays an interface to fill in

25
customer information → The staff enters a name and search → the system displays a
list of customers whose names contains the entered keyword → clicks on the correct
customer name with the current customer (if the customer first comes to book a court,
must add a new one) → the system displays the interface to enter the time period of
the start date, End date of the booking (preferred to book by quarter) → clicks confirm
→ the system displays a booking slip with full customer information, booking
information, booking price, booking time slot, total number session according to the
selected time, the estimated total amount and the deposit amount → clicks confirm →
the system prints the booking slip and updates it to the database.
2. Module "Update used items of the rental session": When the customer arrives to
receive the court and return the court for that session, the staff selects the menu to find
the booking ticket by the customer's name → enter the customer's name + click search
→ the system displays a list of customers with the name entered → selects the correct
customer name with the current customer information → the system displays a list of
orders that the customer is booking → clicks on the checkout button rental session 1
booking ticket → the system displays an interface to enter the court reception time,
return time, and rent (early payment will not be reduced, but late payment will be
charged more) + repeat the following steps until the list of food products that
customers have used during the rental sessions: click more items used → the interface
to search for goods by name appears → enters the name of the goods and search → the
interface for the list of goods with the name entered appears → clicks on 1 item → the
interface to enter the unit price and quantity appears → enters and confirms → the
used item information is added to the list of used items of the session -> The last line
is the total amount of customers → clicks to confirm → the system updates to the
database (no payment required).
3. Module "Customer paying": When a customer comes to pay, a staff selects the menu
to find the booking slip by the customer's name → enter the customer's name + click
search → the system displays a list of customers have the name just entered → selects
the correct customer name with the current customer information → the system
displays a list of booking tickets that the customer is booking → clicks on the payment
button for 1 booking ticket → the system displays the invoice full customer
information + 1 list of food and beverage products that the customer has used during
the rental sessions as described above + the last line is the total amount paid (if the
customer complains about a change in the quantity or information information about
used items, the staff must change, update the detailed list in the corresponding invoice)
→ clicks confirm → the system updates to the database.
4. Module "Goods importing": A staff selects the import menu whem import goods

26
from a provider → the import page appears with a box to search for provider by name
→ The staff enters a name + clicks to search → the system displays a list of the
providers whose name contains the entered keyword → clicks on the currently
imported provider (if the provider is new, add a new one) → Repeat the following
steps for all imported goods: clicks to search for goods by name → enter name + click
search → the system displays a list of the goods whose name contains the name just
entered → the staff selects the name of the goods in the list of available goods (if the
goods are new, choose to add new) + enter the unit price and quantity → that item will
be added to the list of imported goods of the invoice → repeat until all the imported
goods are finished, submit → successful import report and print the imported invoice
as described.

27
13. Karaoke management
• The Karaoke has many singing rooms, each room has different prices, different hours
also have different prices.
• The Karaoke has many room service staff. They work in shifts, pay by the hour. Each
person can work in many different singing rooms in each shift.
• When a customer comes to sing, the reception will ask the customer how much room
they want, then choose a room for the customer, and at the same time choose the
names of 2 free serviec staff to serve the room for the customer.
• While singing, customers can enjoy drinks, snacks, and fruits. Each item has its own
unit price.
• After singing, customers go down to the counter to pay. Room service staff will update
the items used by customers while singing for the receptionist to enter the invoice.
Receptionist prints invoices for customers including two tables, the first table consists
of lines, each coresponds to a n used room: the cost of singing, the starting time, the
ending time, the unit price, and the money. The second table contains lines for used
items. Each line has a code, product name, quantity, unit price, and money. The last
line is the total payment amount.
• After the customer has paid, the staff updates the information of the paid bill, and the
room + 2 service staff are returned to the idle state to serve the next customer.

1. Modul "Receiving customers": When customers come to sing, the receptionist


chooses the function of receiving customers → the interface shows a list of available
singing rooms: each room contains the name, size, class, price → The staff asks for the
customer's needs and clicks to select a room according to the requirements → a list of
available service staff will appear, sorted in ascending order of the number of hours on
duty in the day → The receptionist selects the top 2 service staffs on the list to serve
the corresponding customers room
2. Modul "Payment": When the customer finishes singing, The receptionist chooses the
payment function → the interface shows a list of booked rooms: each room contains
the name, size, class, price → The staff clicks on the right room to pay → the system
displays an interface to enter the items that customers use while singing by repeating
the following steps: search for items by name → click on the correct item to find out +
enter the quantity (and correct the unit price if it is necessary to change from the old
price) → the system automatically adds to the invoice as described above → After
entering, notify and receive money from the customer + click payment → the system
print invoice.
3. The module "service staff payment": A manager selects the function of calculating
wages for service staff in the month/week → The calculation interface appears with
the input box for the amount of time to calculate the work time → The manager enters
the start date, end date of the last month/week → The interface shows a list of wages
for all service staffs during that period, each service staff on one line, in order of
name: code, name, phone number, basic salary (if no service is still received), total
number of hours of service, total fines, total amount received in the end → The
manager clicks on 1 line to see details → Statistical table pops up details of service
staff during that time, each line corresponds to 1 service, arranged in chronological
order: date, time of checkin, time of checkout, number of hours of service, amount of

28
wages, the amount of fines (due to damaged items, lack of goods), the total amount
actually received for the time of service.
4. Modul "Statistics of time slot by customers": A manager selects the menu of time slot
statistics by customers → Enter the time period (start - end date) statistics → the
system displays a list of time slot in tabular format, each line corresponds to an hour
(24 lines) of the day with full information: time slot, total number of customers using
the room, total amount earned (sorted descending of the total number of customers,
followed by the decreasing of the total income). The manager clicks on a line of a time
slot → the system displays a detailed list of invoices paid in the clicked time slot, each
invoice on the line: id, customer name if any, date and time, total amount.

29
14. Parttime employee management
• The restaurant chain has many restaurants. Each restaurant has many hourly
employees. Each working day has 2 shifts, 1st shift from 8am to 4pm, 2nd shift from
4pm to 0am. Hourly rates are the same for all hourly employees.
• Each employee, after signing the contract, is allowed to register his available working
time. The number of sessions that can work in each week that each registered
employee must meet the prescribed minimum threshold. This information may change
on a weekly basis, before scheduling work for the next week.
• Management will be based on the registration schedule of each employee to schedule
the next week. Make sure each shift has enough N employees to work. If there is a
shift where the number of registered employees is greater than N, priority will be
given to the employees who are working fewer hours. The next week schedule will be
announced to all staff.
• When coming to work, the employee scans the check-in card to work, when returning,
the employee scans the checkout card to return.
• Employee wages are calculated based on the actual hours worked by the employee and
are paid weekly. If an employee works more than 8 hours, the salary for the extra time
will be calculated. If an employee arrives late or leaves early, the time of absence will
be deducted.

1. Module "Register for next week": A staff selects the function to register for the next
week's shift as reqired by an employee → Employee search interface appears → The
staff enters the employee's name and clicks search → The interface shows up a list of
employees whose names contain the entered keyword → The staff click the correct
employee -> The interface to register next week's shift for the selected employee
shows up, containing the employee information and a table with 7 lines corresponding
to 7 days of the next week, each line has 2 check boxes corresponding to the shift →
The staff clicks on the boxes corresponding to the shifts that the employee registered
to do and click save → The system saves.
2. Module "Schedule next week": A staff selects the function to schedule the next week
→ The scheduling interface appears including a table with 7 lines corresponding to 7
days of the next week, each row has 2 columns corresponding to 2 shifts of the day.
Each column contains the names of employees registered for that shift → The staff
clicks on a shift → The interface shows a list of employees who have registered to that
shift and have not been assigned to that shift, one employee per line: name, phone
number, total scheduled hours for next week, sort in ascending order of total scheduled
hours for next week → The staff clicks on some employee and clicks the select button

30
→ Interface returns to schedule page with the information of selected employees is
added to the column of the corresponding shift → The staff repeats the above selection
steps until the end of the next week's shift and clicks save → The system saves.
3. Module "Calculate weekly wages": A staff selects the function of calculating wages
for employees during the week → The calculation interface appears with a box to
enter the time period for calculation → The staff enters the starting date, the end of the
last week → The interface shows a list of wages for all employees in that week, each
employee on one line, in the alphabetic order of name: code, name, phone number,
total hours worked in shift, total money in shift, total overtime, total number of hours
late coming home early, total fines, total last received → The staff clicks on a line of
an employee→ The interface shows a detailed statistics table of working hours of the
selected employee in that week, each line corresponds to 1 working shift: day, date,
shift, checkin time, checkout time, number hours in shift, amount in shift, number of
overtime hours, overtime amount, number of hours of late arrival and early return,
fines, total amount received for the shift.
4. Module "Statistics of best employees": A staff selects the function of statistics of best
employees → Statistical interface appears with a box to enter the period of statistics
→ The staff enters the start date, end date of the period → The interface shows a list of
employee in that period, each on 1 line, sorted in ascending order of the total number
of hours late/early: code, name, phone number, total hours actually worked, total
money received, total hours late, total fines → The staff clicks on a line to see details
→ The interface appears on the dashboard detailed list of working hours of employees
selected during that period, each line corresponds to 1 working shift: day, date, shift,
checkin time, checkout time, actual working hours, amount actually received, the
number of hours going late, the amount of the fine.

31
15. Costume rental management
• The store has many costumes, of different categories, a costume can have different
quantities.
• Costume is ordered or pre-imported from suppliers. Each suplier can provide different
costume types. Each import can import many types of costume from the same
provider, each costume has a different amount.
• Customers can rent many times, each time renting many different costumes, each
costume has a different number. If renting for the first time, a deposit must be equal to
the total original value of the rental costumes, if renting many times (customers), the
deposit will be decided by the staff making the invoice.
• When paying, customers can pay part or all of the rental costumes in one time, each
payment has a payment voucher corresponding to the returned costumes. The deposit
is only returned to the customer when all rental costumes have been returned. In case
the customer pays a part of the costumes, after paying, the remaining deposit is more
than the original value of the rental costumes, the customer is entitled to receive the
remaining balance, only keeping the maximum deposit equal to the original value of
the rental costumes.
• When paying, if the costume is damaged or dirty, the customer must pay a fine. A
costume can have multiple errors concurrently. Fines for each error are estimated by
the the staff.

1. Module "Import costume": A staff selects the function to import costumes from a
provider → The interface to find provider by name appears -> The staff enters the
name of the provider and finds it -> Shows a list of providers containing the new name
-> Clicks the correct provider (if not in the list of results, switch to the interface to
enter new provider information and continue) → Repeat until all costumes need to be
imported from that provider: select search costumes by name - > select and enter
quantity, unit price → confirms the invoice entered with provider and pay to the
provider, receive costumes → The system saves and prints the invoice to ask the
provider to sign and save.
2. Module "Costume renting": After choosing the costumes to borrow, a customer
brings them to the cashier's counter to make a loan slip. The staff enters the customer's
name and searches → The system returns a list of customers with the name entered →
The staff clicks on the customer's name in the list (if the customer borrows for the first
time, enter a new one) → The system displays the interface to add borrowed costumes:
For each costume, the staff clicks to find the costume by name → enter the name of
the costume + click search → the system displays a list of costumes with the name
entered → clicks on the right line with the costume selected by the customer + enter
the quantity → The system adds a line corresponding to that costume in the rental slip

32
as described. The total deposit is equal to the total cost of the costumes and is
automatically calculated at the end of the bill. -> clicks to create a loan slip → The
system saves it in the database and prints out the loan slip for the customer and
receives the deposit.
3. Module "Customer returns and pays": When a customer brings the costumes back to
return, a staff chooses the menu to find the list of borrowed costumes by the
customer's name → enter the customer's name + click search → the system displays a
list of customers whose names contains the entered keyword → The staff selects the
correct customer name with the current customer information → the system displays a
list of the costumes that the customer is borrowing, each costume on a line with full
information about the costume, loan date, loan price per day, number of days
borrowed, and rental amount up to the date of payment, the last column is the check
box to select pay → The staff clicks on the pay button for the costumes that the
customer returns (with may not pay in full), enter the status of the costume and the
fine if any, finally clicks the payment button → the system displays the invoice with
full customer information + a list of the costumes to be returned as described above +
the last line is the total amount paid, the amount deposited, the amount the customer
has to pay or return to the customer → clicks confirm → the system updates to the
database.
4. Module "Statistics of costumes": A staff selects the menu of statistics of costumes →
Enter the time period (start - end date) statistics → The system displays the list of
costumes borrowed in the form of a table, each line corresponds to a costume with
complete information: code, name, model, genre, column total number of loans,
column total amount collected (Sorted in descending order of the total borrowed
column, followed by the descending of the total proceeds column). The staff clicks on
a line of an costume → the system displays the details of the invoice with the
borrowed costume, each invoice on 1 line: id, name of the borrower, borrowed date
and time, payment date and time, total amount.

33
16. Parttime worker supply management
• The company provides many types of parttime or seasonal workers, for example:
domestic help, child care, care for the elderly, sick, janitors, security guards, car
keeper, porter, front desk clerk. room, switchboard, reception, broadcast advertising...
• Employees - Freelance workers who sign a contract with the company will pay the
company's employees. The company does not pay an advance salary, but only pays
according to the work that worker perform for partners - customers of the company.
When signing the contract, the worker also declares the selection of jobs that he or she
can do.
• The partners - customers (collectively referred to as customers) of the company are
individuals, families, or companies who need someone to do one or more of the above
jobs. Customers sign a contract with the company, each contract may need many jobs,
each job may need many workers, each job needs to follow a different working
schedule.
• The working schedule of each customer can be calculated by day, by session, by shift,
or by hour (collectively referred to as shift) and wages are determined by the
corresponding unit of calculation.
• After each shift, the customer can pay according to the contract for the worker or at
the end of the month, at the end of the one-time payment to the company. (If the
customer pays the worker, the worker is not entitled to all this amount, but must
deduct % back to the company, the worker is only receiving it for the company).
• After each shift, the customer can rate the level of satisfaction with the worker in that
shift on a 5-star scale. This score is called the quality score of the worker and only
counts the customer's evaluation for the worker within the last 3 months.
• Every time a contract is signed with a new customer, the shift schedule, job position,
and the number of worker for each position are publicly available for worker to
register to work according to their personal preferences.
• At the end of each week, the manager will plan the schedule of each job position
during the week. If the number of applicants for the same position is more than the
number of customers required, priority will be given to the workers who is assigned
the least number of jobs in the registration, if the jobs of two or more workers are
equal, priority will be given to the worker with the highest quality score.
• Workers are paid wages at the end of the week or at the end of the month. The salary is
calculated as 70-80% of the salary paid by the customer to the company. If the
customer receives directly after the shift from the customer, it will be deducted from
the amount received when receiving salary.

1. Module "Signing a contract with a customer": A manager selects the function to sign
a contract with a customer → Customer search interface appears → The manager
enters customer name or part of customer name and clicks to search → A list of
customers whose name contains the entered keyword -> Clicks to select the correct
customer (if the customer is new, switch to the interface to enter new customer
information and continue) → Repeat until all the tasks that the customer need: Select

34
more job opening -> display interface to find and select job -> Repeat the input of
shifts for that job: enter the date, start time, end time, number of employees, unit price
for each employee of that shift -> After repeating sessions for 1 job, repeat from the
beginning of the tasks for all jobs -> The contract confirmation interface contains
customer information, the manager information is the representative of the company, a
list of job, each job has a list of shifts, each shift has enough information as described
above. Finally, the total salary and form of payment after each shift is given to the
worker or after completion, the entire payment will be made with the company -> The
manager confirms with the customer and clicks save -> The system saves, prints the
contract out, the manager and the customer signed together, each party holds 1 copy.
2. Module "Register for next week's shift" (Worker registers online or directly with a
manager staff): The staff selects the function to register for next week's shift for
workers → Worker search interface appears → The staff enters the worker name or
part of the worker name and click search → The interface displays a list of workers
whose name contains the entered keyword -> Select the correct worker → Displays a
list of next week's jobs with requirements that match the capacity and aspirations of
the worker, each job on 1 line -> Repeat until the end of worker's wishes: select a job
-> Show a list of shifts for that job in the next week -> Check the shifts that the worker
wants to work (can register for the same shift, when making the official schedule, the
staff need to avoid the same shift). Repeat until the end of matching tasks.
3. Modul "Schedule next week's work": A manager selects the function to schedule next
week's work → The scheduling interface pops up with a list of next week's tasks ->
Loop to the end of the list: click on a task -> Show a list of shifts for that job in the
week. Repeat for all shifts: click on 1 shift -> Show the number of people needed, job
requirements, and a list of workers who have registered for that shift, one worker per
line: code, name, experience, scheduled hours, quality score, sorted in ascending order
of scheduled hours, followed by descending quality score quantity -> The manager
selects the correct number of workers in order from top to bottom (priority sort order)
and clicks save → The system saves and announces the success for that shift,
repeating for all the shifts of the first job , and the end of the week's work.
4. The module "Calculate wages for workers": A manager selects the function of
calculating wages for workers in the week/month → The interface shows a list of
wages for all workers up to the time of payment, each worker on 1 line, arranged in
order of name: code, name, date of birth, total number of shifts worked, total salary →
The manager clicks on a line to see details → The interface shows a detailed statistics
table for selected worker, each line corresponds to 1 working shift, arranged in
chronological order: date, shift, checkin time, checkout time, amount of wages paid by
the customer for the shift, amount received by the worker, and amount paid by the
worker receive (in case of receiving wages directly from the customer), the remaining
actual amount (negative if the worker has received it directly from the customer, now
deducted) (If the worker requests to update it for the correct time, the manager could
correct this information before printing the payment invoice). The last line is the total
amount the worker will receive (or pay back if negative). -> The manager confirmed
with the worker, click save -> The system saves and reports success, prints 2 copies,

35
the manager signs, the worker signs, each party saves 1 copy and the manager pays (or
receives money from the employee) to the worker.

36
17. Foreign language center management
• The chain of centers has many training facilities. Each training facility has a number
of classrooms. Each classroom can hold up to 3 classes: morning, afternoon, and
evening.
• The center has many training programs, such as TOEIC, IELTS, TOEFL... Each
program has different levels, for example TOEIC 500, TOEIC 650,... Each level can
open many classes at many different times.
• Each class has a schedule of a number of sessions, each session is specific in which
shift, day, and room when scheduling classes.
• Each session learns one of the four skills of listening, speaking, reading and writing.
Each skill can have a different teacher.
• Each teacher can register to teach multiple classes of the same level, or different
levels, or different programs, the salary paid for each teaching session of each
different program/level may be different.
• When a new class is opened, there are scheduled sessions with specific skills, teachers
can register their desire to teach in each class session. Registration can be online or
offline through manager.
• Manager based on that desire to schedule teachers. Once scheduled, the manager will
monitor the teacher's checkin/checkout time in each teaching session for timekeeping.
• The manager can pay teachers' wages weekly or monthly.
• Students can find and register and pay for one or more classes at the same time, as
long as they don't overlap. Registration can be online or offline.

1. Modul “Scheduling new class”: A manager selects the new class scheduling function
in a manager facility → Displays the interface to select programs and levels -> The
manager selects a program from the available list, then select the level from the list
corresponding to the selected program → Repeat until the end of classes: Add 1
session, select a date, select a shift, select an empty classroom from the filter list by
date and selected shift, select the skill learned in that session from the list. → After the
loop is over, display the detailed class information interface: program, level,
information of lessons, each session on 1 line: date, shift, classroom, skills to be
learned → The manager clicks save → The system saves and reports success.
2. Module "Register to teach new classes": Teachers select the function to register for a
new class schedule → Show a list of new classes that are open to receive registration
for teaching (not yet officially scheduled for teachers) → Teacher selects a class →
Show class information: program, level, and list of scheduled sessions (if previously
registered, it will be available in old registered sessions) -> Teacher enters the sessions
want to teach and submit → The system saves and reports success.
3. Module "Learning registration": A staff selects the registration function when
requested from the student → Display the interface to select students by name (if not
in the system, enter the new interface via student information) -> Repeat until the end
of student's request: Select more classes -> Show the interface to select the program
and level -> The student selects the program from the available list, then selects the

37
degree from the list corresponding to the newly selected program according to the
student's wishes -> Show the list of upcoming classes of the selected degree -> The
staff selects the class according to the student's request so that the class does not have
the same class selected or currently studying by students -> After the iteration is over,
the invoice interface will appear: student information, list of classes, each class on one
line: Program name, degree name, total tuition fee. The next line is the total amount.
Next is a list of scheduled lessons for each class, each session on one line: date, shift,
teacher, skill -> The staff confirms with student, collects money and submits →
System saves and reports success , print invoices for employees and deliver them to
students.
4. The module “Paying teachers”: A manager pay teachers → Interface to find teachers
by name, enter name, find and select teachers from the list of results → The interface
shows the list of remuneration tables for all the teaching sessions of that teacher that
not yet paid, each session on 1 line, in chronological order: class code, program name,
level name, class name, date, shift, time in, time out , standard wages, money deducted
late in and out early, real money received, the last line is the total amount actually
received (Teachers can ask the manager to correct the time of entry and exit or unpaid
sessions if there is a discrepancy) → The staff confirms with the teacher and pay the
teacher + confirms on the system -> The system saves the invoice, prints the invoice,
the manager asks the teacher to sign and store it.

38
18. installment loans management
• The company cooperates with many partners which are retailers of products with
many categories from phones, computers, electronics, refrigeration, home appliances,
cars, real estate .. .
• When a customer buys one or several phone models and needs to use the installment
service, the staff will carry out procedures to sign an installment loan contract for that
customer. The contract contains information about the company's representative,
customer information, signing date, and a list of items, each item on one line: code,
name, unit of measure, unit price, quantity, amount. The next line is the total amount
and loan term. Next is a list of payment times, each installment on 1 line: payment
date, total payment amount, total outstanding balance.
• Each item has its own list price, the company paying for the item will receive a
discount, the company will collect it from the customer at an interest rate based on the
listed price of the item.
• Customers can pay installments for each contract once a month, for the optional period
of the contract.
• Customers can pay before the due date but the payment value remains unchanged
• If the customer makes late payment compared to the monthly deadline, the late
balance will be included in the principal and interest will be calculated according to
the principal.
• The company can pay the item bill for each item or in installments for a period of 1
week, 1 month... Each payment will save the invoice with full information of the
company representative, the representative of the partner, payment date, total payment
and list of paid items, each customer's purchase on 1 line: code, name of customer,
date of purchase, unit of measure, quantity, unit price, cost money.

1. Module "Signing a contract": A staff selects the function to sign a new contract with
the customer → Customer search interface appears → enters the customer's name and
clicks to search → The interface displays a list of customers whose name contains the
entered keyword -> selects the correct customer (if not, it is has to enter new
customer information to enter and continue) → Repeat the following steps for all the
items purchased by the customer: item search interface appears → enters the item
name and clicks search → The interface shows a list of item with the names
containing the entered keywords -> Chooses the correct item and enters the quantity
and unit price -> After finishing all the items, chooses to continue - > Interface for
entering loan term and interest rate -> The system automatically calculates the time to
pay monthly and the payment amount in the form of a table, each line corresponds to:
the time to pay, the total amount to be paid. payment, outstanding balance the rest →

39
reconfirms with the customer and clicks save → The system saves and prints the
contract to the customer.
2. Module "Customers paying": A staff selects the function of receiving payment from
Customer (Customer can pay directly at the counter, transfer or online - this is the
description for direct payment) → Displays interface to find contract information ->
The staff enters contract code -> Show details of contract, history of payments, total
outstanding balance and payable amount -> The staff informs customer the amount to
be paid payment and total outstanding balance, asks the customer how many
installments or total amount (customer can pay in advance for the next installments, or
pay not enough for this installment) → selects payment due that customer wants to
pay payment, enter the amount → displays payment invoice containing information of
customer, company representative, list of items as in the original contract, total
payment, total outstanding balance, and a list of remaining payments -> The staff
confirms with customer and click save -> System saves and prints the invoice for the
staff to deliver to customer.
3. Module "Payment to partners": A staff selects the payment function for a partner →
The partner search interface appears → The staff enters the partner name and clicks to
search → The interface pops up a list of partner with the name containing the entered
keyword -> Select the correct partner → The interface shows a list of Contracts of the
customer who buys from that partner but the company has not paid appears, each
contract on 1 line: id, customer name, total item, total amount of customer, amount to
pay for patner -> The staff selects a number of contracts to pay for partner and clicks
next -> Shows partner payment invoice interface with full enough information as
described above -> confirms with item and click save → System saves and prints
invoice for partner to sign for the staff to save.
4. Module "Customer statistics by dept": A staff selects the function of customer
statistics by dept → The interface displays a list of statistics for all customers, each
customer on 1 line, sorted by order of total dept in descending order: code, name,
phone number, total outstanding balance, total dept remain → clicks on 1 line to view
details → The interface shows the list of contracts of that customer, each line
corresponds to 1 contract: code, signing date, total loan amount, total number of
payments, total outstanding balance, total dept remain -> click on 1 line -> display
details corresponding contract: customer information, phone number, list of items,
quantity, unit price, total amount; list of payments, status of payment completed or not.

40

You might also like