All Practical
All Practical
Waterfall Model
The Waterfall Model is a classical software development methodology. It was first introduced by Winston
W. Royce in 1970.
It is a linear and sequential approach to software development that consists of several phases. It must be completed
in a specific order. This classical waterfall model is simple and idealistic.
It was once very popular. Today, it is not that popularly used. However, it is important because most other
types of software development life cycle models are a derivative of this.
The waterfall model is a software development model used in the context of large, complex projects,
typically in the field of information technology. It is characterized by a structured, sequential approach
to project management and software development.
1. Requirements: The first phase involves gathering requirements from stakeholders and analyzing them to
understand the scope and objectives of the project.
2. Design: Once the requirements are understood, the design phase begins. This involves creating a detailed
design document that outlines the software architecture, user interface, and system components.
3. Development: The Development phase include implementation involves coding the software based on the
design specifications. This phase also includes unit testing to ensure that each component of the software is
working as expected.
4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets the requirements and is
free from defects.
5. Deployment: Once the software has been tested and approved, it is deployed to the production
environment.
6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves fixing any issues that
arise after the software has been deployed and ensuring that it continues to meet the requirements over
time.
Easy to Understand
Individual Processing
Properly Defined
Clear Milestones
Properly Documented
Reinforces Good
Incremental Model
In Incremental Model, the software development process is divided into several increments and the same phases are
followed in each increment. In simple language, under this model a complex project is developed in many modules
or builds.
For example, we collect the customer's requirements, now instead of making the entire software at once, we
first take some requirements and based on them create a module or function of the software and deliver it to
the customer. Then we take some more requirements and based on them add another module to that
software.
Similarly, modules are added to the software in each increment until the complete system is created.
However, the requirements for making a complex project in multiple iterations/parts should be clear.
If we understand the entire principle of Incremental methodology, then it starts by developing an initial
implementation, then user feedback is taken on it, and it is developed through several versions until an
accepted system is developed. Important functionalities of the software are developed in the initial
iterations.
Each subsequent release of a software module adds functions to the previous release. This process continues until
the final software is obtained.
Planning: In this phase the requirements are divided into multiple modules and planning is done on their
basis.
Modeling: In this phase the design of each module is prepared. After the design is ready, we take a
particular module among many modules and save it in DDS (Design Document Specification). Diagrams
like ERDs and DFDs are included in this document.
Construction: Here we start construction based on the design of that particular module. That is, the design of
the module is implemented in coding. Once the code is written, it is tested.
Deployment: After the testing of the code is completed, if the module is working properly then it is given to
the customer for use. After this, the next module is developed through the same phases and is combined
with the previous module. This makes new functionality available to the customer. This will continue until
complete modules are developed.
Working software is prepared quickly and early during the software development life cycle (SDLC).
This model is flexible and less expensive to change requirements and scope.
The customer can respond to each module and provide feedback if any changes are needed.
Iterative Model
In Iterative model we start developing the software with some requirements and when it is developed, it is
reviewed. If there are requirements for changes in it, then we develop a new version of the software based on those
requirements. This process repeats itself many times until we get our final product.
So, in Iterative model a software is developed by following several iterations. Iteration means that we are
repeating the development process again and again. For example, we develop the first version of the
software following the SDLC process with some software requirements.
The basic concept of Iterative model is that the software should be developed through repeated cycles or
what we also call iteration and only a small part of it should be developed at a time. This model was
developed to overcome the drawbacks of the classical waterfall model.
2. Design: In this phase the design of software is prepared. For this, various diagrams like Data Flow diagram,
class diagram, activity diagram, state transition diagram, etc. are used.
4. Testing: After the coding of the software is done, it is now tested so that the bugs and errors present in it
can be identified. To do this, various testing techniques like performance testing, security testing,
requirement testing, stress testing, etc. are done.
5. Deployment: Finally the software is given to the customer. After this the customer starts using that software
in his work environment.
6. Review: After the software is deployed in its work environment, it is reviewed. If any error/bug is found or
any new requirements come in front of developer, then again these phases are repeated with new iteration
and a new version is developed.
7. Maintenance: In this phase we look at customer feedback, solve problems, fix errors, update software, etc.
Testing and debugging the software becomes easier during each iteration.
During the software development process, additional time is devoted to development and limited time to
documentation.
Since we have to repeat iterations many times in the software development process due to which we require
more resources.
Since the requirements are constantly changing, we have to make frequent changes in the software.
It is very difficult to tell by what date the complete software will be ready.
Spiral Model
Spiral model is a software development process model. This model has characteristics of both iterative and
waterfall models. This model is used in projects which are large and complex. This model was named spiral
because if we look at its figure, it looks like a spiral, in which a long curved line starts from the center point and
makes many loops around it. The number of loops in the spiral is not decided in advance but it depends on the size
of the project and the changing requirements of the user. We also call each loop of the spiral a phase of the software
development process.
A software project goes through these loops again and again in iterations. After each iteration a more and more
complete version of the software is developed. The most special thing about this model is that risks are identified in
each phase and they are resolved through prototyping. This feature is also called Risk Handling.
Since it also includes the approaches of other SDLC models, it is also called Meta Model. It was first developed by
Barry Boehm in 1986.
Identifying and resolving risks: In this phase, all the proposed solutions are assessed and the best solution
is selected. Now that solution is analyzed and the risks related to it are identified. Now the identified risks
are resolved through some best strategy.
Develop and test: Now the development of software is started. In this phase various features are
implemented, that is, their coding is done. Then those features are verified through testing.
Review and plan for the next phase: In this phase the developed version of the software is given to the
customer and he evaluates it. Gives his feedback and tells new requirements. Finally planning for the next
phase (next spiral) is started.
Software engineering(4340702) Enrollment No : 239830331082
Advantages of Spiral Model:-
If we have to add additional functionality or make any changes to the software, then through this model we
can do so in the later stages also.
The customer can see the look of his software only in the early stages of the development process.
Since continuous feedback is taken from the customer during the development process, the chances of
customer satisfaction increases.
Experienced experts are required to evaluate and review the project from time to time.
Using this model, the success of the project depends greatly on the risk analysis phase.
Prototype model
Prototype model is an activity in which prototypes of software applications are created. First a prototype is created
and then the final product is manufactured based on that prototype.
The prototype model was developed to overcome the shortcomings of the waterfall model.
The specialty of this model is that this model can be used with other models as well as alone.
One problem in this model is that if the end users are not satisfied with the prototype model, then a new prototype
model is created again, due to which this model consumes a lot of money and time.
Build the initial prototype: In this phase the initial prototype is built. In this some basic requirements are
displayed and user interface is made available.
Revise and improve the prototype: When feedback is taken from end users and customers, the prototype
is improved on the basis of feedback. If the customer is not satisfied with the prototype, a new prototype is
created and this process continues until the customer gets the prototype as per his desire.
When we know only the general objective of creating software, but we do not know anything in detail about
input, processing and output. Then in such a situation we make it a Prototype Model.
When a software developer is not very sure about the capability of an algorithm or its adaptability to an
operating system, then in this situation, using a prototype model can be a better option.
Many compromises can be seen in the first version of the Prototype Model.
Sometimes a software developer may make compromises in his implementation, just to get the prototype
model up and running quickly, and after some time he may become comfortable with making such
compromises and may forget that it is completely inappropriate to do so.
Agile Model
Agile model is a combination of iterative and incremental models, that is, it is made up of iterative and incremental
models.
The agile model was created mainly to make changes in the middle of software development so that the software
project can be completed quickly.
In the agile model, the software product is divided into small incremental parts. In this, the smallest part is
developed first and then the larger one.
Each iteration is kept small so that it can be easily managed. And it can be completed in two-three weeks.
Only one iteration is planned, developed and deployed at a time.
Demo of working software is given to understand the customer's requirements. That is, it does not depend
only on documentation.
Incremental versions of the software have to be delivered to the customer representative after a few weeks.
In this model it is advised that the size of the development team should be small (5 to 9 people) so that the
team members can communicate face to face.
Agile model focuses on the fact that whenever any changes have to be made in the software, it should be
completed quickly.
In agile development, two programmers work together. One programmer does the coding and the other
reviews that code. Both the programmers keep changing their tasks, that is, sometimes one does coding and
sometimes someone reviews.
2. Crystal methods
3. DSDM
There are very few rules in this and documentation is also negligible.
It mostly depends on the customer representative, if the customer representative gives any wrong
information then the software can become wrong.
Only experienced programmers can take any decision in this. New programmers cannot take any decision.
In the beginning of software development, it is not known how much effort and time will be required to
create the software.
PRACTICAL-2
AIM: Write problem statement to define the project title with bounded scope of the project.
1. Point of Sale (POS) System: Handles order processing, payment transactions, and inventory management.
2. Inventory Management: Tracks stock levels, manages orders, and helps prevent shortages.
5. Reporting and Analytics: Generates reports on sales, inventory, employee performance, and customer
trends2.
6. Customer Relationship Management (CRM): Manages customer data, loyalty programs, and feedback.
7. Accounting and Financial Management: Handles invoicing, payroll, and financial reporting.
8. Online Ordering and Delivery Management: Facilitates online orders and integrates with delivery
services.
These systems can be cloud-based, offering real-time data access and management from multiple devices. They
help improve efficiency, reduce errors, and enhance the overall customer experience.
PRACTICAL-3
AIM :- Select relevant process model to define activities and related tasks set for assigned
project .
1. Waterfall Model:
Description: A linear, sequential approach where each phase must be completed before moving to the next.
Best For: Projects with well-defined requirements that are unlikely to change.
Suitability for Restaurant Management System: If the project requirements are fully defined from the start and
unlikely to change, the Waterfall model could work. However, since restaurant systems often evolve (adding features
like online ordering or customer loyalty programs), this model may be too rigid.
Description: An extension of the Waterfall model, emphasizing testing at every stage. Each development phase has a
corresponding testing phase.
Best For: Projects where testing is a critical aspect, and there’s a focus on ensuring system correctness from the start.
Suitability for Restaurant Management System: The V-Model could be useful if the restaurant system has strict
requirements for performance and reliability, but like Waterfall, it lacks flexibility for changing requirements.
3. Iterative Model:
Description: Development is done in cycles (iterations), allowing for refinement of the system in each cycle based on
feedback.
Best For: Projects where the full scope of the requirements is not known upfront but can be refined during
development.
Suitability for Restaurant Management System: This model is suitable because it allows you to develop basic
functionality first (e.g., order processing, menu management) and add advanced features (e.g., analytics, online
reservations) in subsequent iterations.
Description: Agile is an incremental, iterative approach where the product is developed in small cycles (called
sprints), with regular customer feedback.
Best For: Projects with changing or evolving requirements where customer feedback is critical throughout the
development.
Suitability for Restaurant Management System: Agile is a highly suitable choice. Restaurant management systems
often require frequent updates based on user feedback (e.g., restaurant staff or customers). The flexibility of Agile
ensures that evolving needs can be accommodated without extensive rework. It allows you to prioritize critical
functions (menu management, order processing) and continuously improve or add new features in short sprints.
Description: Combines iterative development with risk management. Each iteration goes through planning, risk
analysis, engineering, and evaluation phases.
Best For: Large, complex projects with significant risks, where risk management is crucial.
Suitability for Restaurant Management System: This may be more suitable for a large-scale restaurant
management system with extensive features and risks (e.g., integrating with multiple third-party systems), but it can
be overkill for a simpler project.
Activities and Related Task Sets in Agile (Scrum) for the Restaurant Management System:
Define product backlog: Identify key features like menu management, order processing, table reservations, etc.
Create user stories: Break down the product backlog into user stories (e.g., "As a manager, I want to add a new menu
item").
Assign roles: Product owner, Scrum master, development team.
2. Sprint Planning:
Select user stories: Based on priority, select stories from the backlog for the sprint.
Define sprint goal: E.g., "Develop the table reservation feature in this sprint."
Design and prototype: Create wireframes or prototypes for features like the menu system.
Coding tasks: Implement selected features (e.g., order processing, customer data management).
Code review: Ensure code quality and consistency.
Unit testing: Ensure individual components are functioning correctly.
4. Testing Phase:
Integration testing: Test the integration between components (e.g., linking the payment system with the order
system).
User acceptance testing: Ensure the system meets user needs and expectations.
Sprint demo: Present completed work to stakeholders (e.g., menu management or reservation features).
Collect feedback: From restaurant staff, managers, etc., on features delivered.
Retrospective: Review the sprint process, identify improvements, and prepare for the next sprint.
Deploy features: Push the completed functionalities (e.g., order management, inventory tracking) into production.
Bug fixes & maintenance: Handle any issues that arise post-deployment.
Conclusion:
The Agile (Scrum) process model offers flexibility, customer involvement, and the ability to adapt to changing requirements,
making it the most suitable for developing a Restaurant Management System. By breaking down the project into
manageable sprints, you can deliver critical features early and continuously improve the system based on real-world feedback.
PRACTICAL-4
Restaurant Management System (RMS) Requirements Gathering is the critical first step in developing an
efficient and functional system.
This phase involves collecting and analysing the needs and expectations of various stakeholders, such as restaurant
owners, managers, staff (waiters, chefs), and customers, to create a system that meets the specific needs of the
restaurant's operations.
Order Management:
Order Taking:
o Ability for waitstaff to take orders at tables (through tablets, smartphones, or POS).
o Customers can place orders via mobile apps or kiosks.
o Ability to modify orders (e.g., add/remove items, special instructions).
Order Tracking:
o Track status of orders (received, cooking, ready, delivered).
o Notify customers or kitchen when their order is ready.
Menu Management:
o Admin can easily update, add, or remove menu items.
o Ability to set item availability based on stock levels (dynamic pricing).
o Menu categories (appetizers, main courses, drinks, etc.).
Invoice Generation:
o Automatically generate detailed invoices for customers.
o Support for split bills (e.g., separate bills for each customer at a table).
Payment Integration:
o Ability to process payments (cash, credit/debit cards, online payments).
o Integration with payment gateways (e.g., Stripe, PayPal).
Inventory Management:
Stock Monitoring:
o Track ingredients, supplies, and beverages in real-time.
o Automatic updates of stock levels after each order.
Supplier Management:
Table Management:
Reservations:
o Allow customers to book tables online or through the RMS (time slots, table size).
o Admins can view, modify, or cancel reservations.
Table Assignments:
o Allocate tables to customers when they arrive.
o Track table availability in real-time.
Waitlist Management:
o Manage customer waitlists and notify them when their table is ready.
Table Status:
o Real-time monitoring of table statuses (open, occupied, dirty, reserved, etc.).
Employee Management:
Staff Scheduling:
o Schedule shifts for waitstaff, chefs, cashiers, etc.
o Track attendance and overtime.
Customer Profiles:
o Create customer profiles with details like name, contact information, order history, preferences, and
loyalty program participation.
Customer Feedback:
o Collect feedback through surveys or ratings after meal completion.
Communication:
o SMS/email alerts for promotions, reservations, or special offers.
Sales Reports:
o Generate detailed daily, weekly, and monthly sales reports.
o Track revenue per item, category, or employee.
Inventory Reports:
o Monitor usage, waste, and stock levels.
2. Non-Functional Requirements:-
Load Handling:
o System must handle peak loads, especially during busy hours (e.g., weekends, holidays).
Response Time:
o Quick response time for all operations (e.g., order taking, billing).
Scalability:
o The system should scale with restaurant growth (e.g., multiple branches, more employees, more
customers).
Security:
Data Protection:
o Ensure compliance with data protection regulations (e.g., GDPR, CCPA) regarding customer and
payment data.
Payment Security:
o Ensure secure transactions (e.g., PCI DSS compliance for credit card transactions).
Usability:
Ease of Use:
o The system should have an intuitive, easy-to-navigate interface for staff with little technical
knowledge.
Multi-Language Support:
o Support multiple languages for international staff and customers.
Multi-Device Support:
o Ensure the system works across various devices (desktop, tablets, POS terminals, mobile phones).
Reliability:
System Availability:
o The system must be available 24/7 with minimal downtime.
Integration:
POS Integration:
o Integration with existing POS systems to streamline order and payment processes.
Accounting Systems:
o Integrate with accounting software (e.g., QuickBooks) for seamless financial reporting.
Third-Party Services:
o Integration with third-party services like delivery platforms (UberEats, DoorDash), online
reservation systems (OpenTable), and marketing tools.
Overview:
o Ensure the system provides comprehensive control over daily operations, financials, and customer
service.
o Monitor overall restaurant performance via dashboards and reports.
o Ensure the system improves efficiency, reduces errors, and enhances customer satisfaction.
Waitstaff / Servers:
Overview:
o Need a tool to quickly take orders, modify them, and process payments with minimal friction.
Overview:
o Require an efficient order management system to ensure smooth order preparation and accurate meal
delivery.
Customers:
Software engineering(4340702) Enrollment No : 239830331082
Overview:
o Expect a fast, convenient, and personalized experience.
System Admin:
Overview:
o Manage and configure the system, monitor user access, and ensure the system runs smoothly.
Key Features Needed:
o User management (adding/removing staff).
o System configuration (menu setup, payment gateways).
o Real-time performance monitoring.
4. Constraints:-
Budget Constraints:
o Development and maintenance costs must fit within the allocated budget.
Timeline:
o The system should be delivered in phases (for example, an MVP in 3-6 months and full deployment
in 12 months).
Regulatory Compliance:
o The system must comply with local and international regulations, particularly those regarding data
protection and payments.
Conclusion:
The requirements gathering for a Restaurant Management System should involve a detailed analysis of the
needs of all stakeholders involved, including restaurant staff, customers, and management.
By considering both functional and non-functional requirements, as well as specific needs such as security,
performance, and usability, you can ensure that the RMS will effectively address the operational challenges
faced by the restaurant.
AIM: Prepare broad SRS (software requirement software) for the above selected project.
1. Introduction
1.1 Purpose
The purpose of this document is to define the software requirements for a Restaurant Management System (RMS) to
streamline restaurant operations. It outlines the functionalities, constraints, and interface requirements that are essential to
develop, implement, and maintain the system effectively.
1.2 Scope
The Restaurant Management System will handle core activities within a restaurant, including order management, menu
management, inventory control, table reservations, billing, staff management, and customer feedback. It will be designed for
use in small to medium-sized restaurants and cafes to enhance productivity and customer service.
1.5 Overview
This document consists of the functional and non-functional requirements of the RMS, user interaction diagrams, and external
system dependencies. The system will provide users with the ability to manage restaurant operations through a web or mobile
application.
2. Overall Description
2.1 Product Perspective
The Restaurant Management System will function as a standalone web or mobile application. It will be integrated with a POS
system for payment processing, an inventory system for stock control, and an online portal for customer engagement.
1. Menu Management:
o Add, update, or remove menu items.
o Categorize menu items by type (appetizers, main course, desserts, beverages).
o Pricing, descriptions, and availability management.
2. Order Management:
o Create and manage dine-in, takeaway, and online orders.
o Real-time order tracking.
o Split bills and track discounts or promotions.
3. Table Reservation System:
1. Administrator: Responsible for system setup, user management, and monitoring restaurant activities.
2. Waitstaff: Take orders, manage tables, and track payments.
3. Kitchen Staff: Receive and prepare orders.
4. Customer: Interacts through online ordering or reservations.
5. Manager: Access reports, monitor performance, and manage staff.
The system will operate in web browsers (Chrome, Firefox, Safari) and on mobile devices (Android and iOS).
Backend technologies could include a SQL or NoSQL database, cloud hosting (AWS/Azure), and a scalable micro
services architecture.
The system must support integration with external POS and payment gateways.
3. Functional Requirements
3.1 User Authentication
Users (admin, wait staff, kitchen staff) must log in using a username and password.
Support for user roles and permissions.
3.8 Reporting
4. Non-functional Requirements
4.1 Performance Requirements
The system should process 100+ orders per hour without delays.
The response time for any user query must be less than 2 seconds.
4.2 Reliability
4.3 Security
4.4 Usability
4.5 Scalability
Must support growing restaurants with the ability to handle an increasing number of orders, inventory items, and
users.
AIM:- Develop data designs using DFDs (data flow diagram) and E-R (entity-relationship)
diagram.
This represents the highest level of the system and shows the interaction between the external entities and the system itself.
The Level 1 DFD breaks down the RMS into several major sub-processes.
PRACTICAL-7
Software engineering(4340702) Enrollment No : 239830331082
AIM:- Prepare use-cases and draw use case diagram .
PRACTICAL-8
PRACTICAL-9
AIM:- Develop the activity diagram to represent flow from one activity to another for
software development.
Key Stages:
PRACTICAL-11
AIM :- Evaluate size of the project using Function point metric for the assigned project.
To evaluate the size of your Restaurant Management System project using the Function Point (FP) metric, we will go
through the following steps:
External Inputs (EI): Inputs to the system, such as data entry forms, adding new menu items, or creating orders.
External Outputs (EO): Outputs from the system, such as reports, receipts, or notifications.
External Inquiries (EQ): Requests that require both input and output, like querying customer details or searching for
available tables.
Internal Logical Files (ILF): Internal data the system maintains, such as customer information, orders, or inventory.
External Interface Files (EIF): Files managed by external systems but used by the system, like external payment
gateways or a supplier system.
Each element is assigned a complexity level: Low, Medium, or High. Based on this, each type gets a weight. Below is the
standard complexity-weight table:
Let's assume the following for the Restaurant Management System based on common functionalities:
Without any complexity adjustments, the size of your Restaurant Management System project, in function points, is:
This gives an estimate of the project size, which can be used to gauge development effort, cost, and time.
PRACTICAL-12
AIM :- Estimate cost of the project using COCOMO (Constructive Cost Model) / COCOMO
II approach for the assigned project.
To estimate the cost of your Restaurant Management System project using the COCOMO II model, we'll go through the
following steps:
The size of the project is usually expressed in Kilo Lines of Code (KLOC). We will estimate the size in KLOC based on the
Function Points (FP) calculated earlier.
In COCOMO II, the FP to KLOC conversion depends on the programming language used. Here are some common
conversion factors:
Organic: Small, simple projects with small teams and good experience.
Semi-detached: Medium-sized projects with a mix of experienced and inexperienced developers.
Embedded: Complex, high-risk projects with rigid requirements and constraints.
For the Restaurant Management System, it would likely be considered Organic due to its small scale and relatively
straightforward requirements.
4. Calculate Effort:
The estimated effort for the Restaurant Management System project is approximately 14.1 person-months.
The estimated development time for the Restaurant Management System project is approximately 7.7 months.
To estimate the cost, we need to multiply the effort by the average salary (in person-months). Assuming an average monthly
developer salary of $5,000, the cost would be:
The estimated cost of the Restaurant Management System project is approximately $70,518.
Summary of Estimates:
These estimates can help you plan resources and timelines for your project.
PRACTICAL-13
AIM:- Use flow chart and Gantt charts to track progress of the assigned project. (Use Sprint
burn down chart if agile model is selected).
1. Flowchart for the Restaurant Management System Workflow
Start
↓
Customer Requests Order → Waiter Takes Order → Order Sent to Kitchen →
Kitchen Prepares Order → Waiter Serves Food
2. Gantt Chart
Task Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 ... Week 20
Maintenance Ongoing
PRACTICAL-14
1. Go to Menu Management
2. Click "Add New Item"
Add a new menu New item added to the menu, displayed on menu
TC-005 3. Fill in item details (name, price,
item page
category)
4. Click "Save"
1. Go to Menu Management
Edit an existing menu 2. Select an existing item
TC-006 Menu item details updated successfully
item 3. Edit details
4. Click "Save"
1. Go to Menu Management
Confirmation prompt appears, and item is
TC-007 Delete a menu item 2. Select a menu item
deleted from the menu
3. Click "Delete"
1. Go to Menu Management
Duplicate menu item 2. Add an item with the same Error message displayed: "Menu item already
TC-008
entry name exists"
3. Click "Save"
1. Go to the order
page
2. Select table Order successfully placed, status updated to "In
TC-009 Place a new order (Dine-in)
3. Add items to the Progress"
order
4. Click "Place Order"
1. Go to order page
2. Select "Takeaway" Order successfully placed with "Takeaway"
TC-010 Place a new order (Takeaway)
3. Add items status
4. Click "Place Order"
1. Go to existing order
2. Add more items
TC-011 Update order (Add more items) Order successfully updated with new items
3. Click "Update
Order"
3. Confirm
cancellation
1. Go to order history
Check order history for a specific
TC-013 2. Select a table Previous orders for the table displayed
table
3. View order details
4. Reservation Module
Test Case
Test Scenario Test Steps Expected Result Status
ID
1. Go to Reservations
Make a table reservation for a 2. Select table and date Reservation successfully created,
TC-014
future date 3. Enter customer details confirmation displayed
4. Click "Reserve"
1. Go to Reservations
Attempt to reserve an already 2. Select an already Error message displayed: "Table is already
TC-015
booked table reserved table reserved"
3. Click "Reserve"
1. Go to Reservations
2. Select a reservation
TC-016 Modify an existing reservation Reservation details updated successfully
3. Edit details
4. Click "Save"
1. Go to Reservations
2. Select a reservation
TC-017 Cancel a reservation Reservation status changes to "Cancelled"
3. Click "Cancel
Reservation"
Generate bill for a 1. Go to completed order Bill generated successfully, displaying items, tax,
TC-018
completed order 2. Click "Generate Bill" total, etc.
1. Generate bill
2. Select payment method Payment processed successfully, receipt
TC-019 Process payment using cash
(cash) generated
3. Click "Pay"
1. Generate bill
2. Select payment method
Payment processed, receipt generated,
TC-020 Process payment using card (card)
confirmation displayed
3. Enter card details
4. Click "Pay"
1. Generate bill
2. Click "Apply Discount"
TC-021 Apply discount to a bill 3. Enter discount Bill updated with discount, new total displayed
percentage
4. Click "Apply"
1. Go to completed orders
Duplicate receipt generated and printed
TC-022 Generate duplicate receipt 2. Select an order
successfully
3. Click "Generate Receipt"
TC-023 Add new inventory items 1. Go to Inventory New item added to inventory, displayed in
2. Click "Add New Item" inventory list
3. Enter details (name, quantity,
supplier)
4. Click "Save"
1. Go to Inventory
Update inventory item 2. Select an item
TC-024 Quantity updated successfully
quantity 3. Update quantity
4. Click "Save"
1. Go to Inventory
Item removed from inventory, confirmation
TC-025 Delete an inventory item 2. Select an item
message displayed
3. Click "Delete"