Se Project
Se Project
Keshav Mahavidyalaya
University of Delhi
Software Engineering
SIGNATURE
DEClARATIon
I hereby declare that the project work entitled “Canteen Management System” submitted
to the Keshav Mahavidyalaya University of Delhi College, is a record of an original work done
by me under the guidance of Mr. Sumit Kumar, Associate Professor, Department of
Computer Science, Keshav Mahavidyalaya and this project work is submitted in the partial
fulfilment of the requirements for the award of the degree of Bachelors in Physical Sci
(Computer Science). The results embodied in this thesis have not been submitted to any
other University or Institute for the award of any degree or diploma.
SUBMITTED BY:
SACHIN SHARMA (16069)
SATYANARAYAN KUMAR (16073)
PRIYANSHU ARYA (16061)
MOHIT KUMAR (16117)
Index
1. Introduction
o 1.1 Overview
o 1.2 Key Features
o 1.3 Features of This System
o 1.4 Problem Statement
o 1.5 Expectations
o 1.6 Advantages
o 1.7 Disadvantages of This System
o 1.8 Feasibility Study
o 1.9 Software Process Model
2. Software Requirements Specification (SRS)
o 2.1 Purpose
o 2.2 Scope
o 2.3 Technology Used
o 2.4 Context Level (0 level DFD)
o 2.5 DFD 1- Level
o 2.6 DFD 2-Llevel
3. Specific Requirements
o 3.1 Functional Requirements
o 3.2 Data Tables
o 3.3 Non-Functional Requirements
4. Estimations
o 4.1 Function Point Estimation
o 4.2 Effort Estimation
5. Risk Analysis
o 5.1 Risk Analysis Table
6. Testing
o 6.1 Order Placement Module
o 6.2 Test Cases for the Order Placement Module
7. Conclusion
1. Introduction
1.1 overview
The Canteen Management System (CMS) is a comprehensive software solution designed to
streamline the day-to-day operations of a canteen. The system aims to improve the overall efficiency
of managing food orders, inventory, payments, and customer interaction, all while providing an
intuitive, user-friendly experience. By automating various functions, the system reduces human error,
saves time, and enhances operational productivity.
The Canteen Management System automates the entire process of managing a canteen or cafeteria,
including customer orders, inventory management, and financial transactions. It aims to provide a
seamless experience for both customers (students, employees, or visitors) and the canteen staff. The
system also helps in optimizing inventory levels, reducing food wastage, and ensuring that orders are
processed efficiently.
The CMS was developed to address common challenges such as order mismanagement, inventory
tracking issues, and slow payment processing, ultimately improving customer satisfaction and
operational efficiency.
User-Friendly Interface: The system features an intuitive, easy-to-use interface for both
customers and the admin/staff.
Online Ordering: Customers can browse through the menu, customize orders, and place
them online.
Real-Time Order Management: The admin/staff can track and manage orders, update
statuses (e.g., pending, in progress, ready for pickup), and confirm deliveries.
Menu Management: The admin/staff can add, update, or delete menu items and set prices.
Payment Gateway Integration: Customers can make payments via online methods
Inventory Management: The system helps manage food stock levels and notifies the
admin/staff when inventory is running low.
Sales & Inventory Reports: The admin/staff can generate reports for sales tracking, inventory
levels, and other key metrics.
For Customers:
o Track the order status in real time (e.g., in progress, ready for pickup).
For Admin/Staff:
o Manage Orders: Track and manage all incoming orders, update their status, and
process deliveries.
o Menu Management: Add new items to the menu, change existing item prices, or
remove items.
Payment Processing Delays: Manual billing and payment handling can cause long wait times
at counters.
The Canteen Management System is designed to address these issues by automating processes and
improving accuracy, speed, and customer service.
1.4 Expectations
The main expectations from the Canteen Management System are:
Increased Efficiency: The system should automate most tasks (order-taking, inventory
management, payment processing) and speed up overall operations.
Accurate Tracking: It should reduce errors related to order management, inventory, and
pricing.
Better Customer Experience: Customers should benefit from faster service, an easy-to-use
interface, and smooth payment processing.
Real-Time Monitoring: The admin/staff should be able to track orders, inventory, and sales
performance in real time for better decision-making.
Scalability: The system should be capable of scaling as the canteen grows, handling a larger
number of customers, orders, and products.
1.5 Advantages
The Canteen Management System offers the following advantages:
Real-Time Information: Admin/staff can monitor orders, stock levels, and sales data in real
time, enabling better decision-making.
Enhanced Customer Satisfaction: Faster service, clearer order tracking, and multiple
payment options improve the customer experience.
Reduced Costs: By optimizing inventory and reducing manual errors, the system helps save
money on stock and operational costs.
Easier Report Generation: The system can generate detailed reports on sales, inventory, and
customer behavior, providing insights for better management.
Initial Setup Cost: The development, deployment, and integration of the system may incur a
high initial cost.
System Downtime: Any technical issues, such as network outages or server downtime, could
disrupt normal operations.
Learning Curve: Staff may require training to get accustomed to the new system, especially if
they are unfamiliar with the technology.
Data Security: While the system aims to protect sensitive data, there is always a risk of
security breaches, particularly with payment processing.
Operational Feasibility: The system's design is simple and user-friendly, making it easy for
staff (admin/staff) to operate without extensive technical training.
In-scope Features:
Customer Interface: Allows customers to browse the menu, place orders, and track order
status.
Order Management: Staff will receive and manage customer orders, updating their status
(e.g., pending, completed).
Menu Management: Admin/staff can add, edit, or remove items from the menu and update
prices.
Inventory Management: Track inventory levels and alert staff when items are running low.
Payment System: Customers can pay for orders (either through cash or online payment
methods).
Reporting: Generate simple reports for staff/admin on daily sales, inventory, and customer
feedback.
Out of Scope:
Multi-Canteen Support: The system will support a single canteen or cafeteria; it will not
handle multiple locations.
• Backend: python
Customer Functionalities:
1. Browse Menu:
o Customers can see the menu items with their name, description, and price.
2. Place Orders:
o Customers can select items from the menu, specify the quantity, and place the order.
o Customers can check the status of their order (e.g., "In Progress", "Completed").
4. Payment:
o Customers can pay either by cash or online payment (this can be a simple
placeholder for your project).
Staff/Admin Functionalities:
1. Manage Menu:
o Staff can add, edit, or remove menu items using Python scripts and SQL queries.
2. Manage Orders:
o Staff can view all orders, update statuses (e.g., mark orders as completed), and
assign them for preparation.
3. Inventory Management:
o Track stock levels of menu items and get alerts when stock is low.
4. Generate Reports:
General Functionalities:
1. Login System:
o Admin and staff will log in using a username and password (authentication system).
2. Notifications:
o Simple alerts for staff when an order is ready or stock is running low.
1. Users Table
2. Menu Table
3. Orders Table
order_date DATETIME Date and time when the order was placed.
4. Order_Items Table
order_item_id INT (Primary Key) Unique identifier for each order item.
5. Inventory Table
item_id INT (Primary Key, Foreign Key) Link to the Menu table.
stock INT Amount of stock available.
Non-functional requirements specify the general system attributes and performance expectations.
1. Performance:
Response Time: The system should respond to user actions (such as placing an order or
browsing the menu) within 2-3 seconds.
2. Usability:
The system should have a simple, user-friendly interface for customers and staff.
Customers should easily browse the menu and place orders, while staff should quickly
update orders and inventory.
3. Security:
User Authentication: Staff and admin must log in with a username and password.
Data Security: Passwords must be hashed and stored securely in the database.
4. Availability:
The system should be available 24/7, but may have planned downtime for maintenance.
5. Scalability:
The system should be scalable to handle a larger number of users as needed, especially
during peak hours like lunch.
4. Estimations
Estimating the size and effort involved in a software project is critical for planning, resource
allocation, and setting timelines. In this section, we'll use Function Points as a method to
estimate the size of the system, and Effort estimates to determine the resources (time and
people) required to complete the project.
o External Inputs (EI): Data that enters the system (e.g., customer orders, admin
login).
o External Outputs (EO): Data that leaves the system (e.g., order status, reports).
o User Inquiries (UI): Data retrieval requests (e.g., tracking order status).
o Internal Logical Files (ILF): Internal data storage entities (e.g., menu, inventory, user
accounts).
o External Interface Files (EIF): Data from external systems (e.g., external payment
gateways, supplier inventory).
2. Assign Complexity Levels: For each function, you'll assign a complexity level (Low, Average,
High) based on the amount of data processed or the complexity of the task. Typically, this is
done using the following criteria:
o Low Complexity: Simple tasks with few data elements (e.g., adding a single menu
item).
o Average Complexity: Tasks involving multiple data elements or several data fields
(e.g., placing an order).
o High Complexity: Tasks involving large amounts of data or multiple interactions (e.g.,
generating detailed reports or complex order management systems).
3. Assign Function Points: Based on the complexity level, you will assign a function point value
to each category.
4.2 Efforts
Effort estimation refers to the amount of time and resources required to implement the system
based on its function points. There are various methods to estimate efforts, but one common
approach is using a productivity factor.
The typical formula used for effort estimation in function point analysis is:
The Productivity Factor varies depending on the complexity and the development environment.
A typical range for Function Point to Person-Hour Conversion in an average-sized project is:
For this estimation, let’s assume a medium complexity (since your CMS includes some
moderately complex features like real-time tracking, menu management, payment integration,
and reporting). Based on this, we’ll use a productivity factor of 20 person-hours per function
point.
Effort Calculation:
Effort=720 Person-Hours
Effort Breakdown:
You can further break down this effort into phases of the project based on the iterations. For
example:
Iteration 1 (Basic Menu and Order Placement): 150 hours (focus on basic functionality)
Iteration 2 (Enhanced Menu, Order Status Tracking, and Inventory): 200 hours (focus on
more complex functionality like inventory alerts)
Summary of Estimates:
1. Function Points: 36 FP
Project Timeline:
Considering an average developer working at 40 hours/week, the total estimated effort
translates to:
This translates to around 4 to 5 months for the development of your CMS, depending on the size
of the development team and other factors.
5. Risk Analysis
menu = {
def display_menu():
print("\nCanteen Menu:")
def place_order():
display_menu()
order = []
total_cost = 0
while True:
try:
if item_choice == 0:
break
continue
item_price = menu[item_choice]['price']
order.append({
"item": menu[item_choice]["name"],
"quantity": quantity,
"price": item_total
})
total_cost += item_total
except ValueError:
print("\nOrder Summary:")
print("-" * 50)
print("-" * 50)
if payment.lower() == 'y':
else:
print("Order canceled.")
place_order()
Objective: Ensure that the system allows placing a valid order, calculates the total price, and
shows the correct order summary.
Steps:
1. Run the system and select valid menu items (e.g., Masala Dosa and Chicken Biryani).
2. Enter a valid quantity for the selected items (e.g., Masala Dosa: 2, Chicken Biryani:
1).
Expected Result:
o The system should calculate and display the total cost for the items ordered (Masala
Dosa * 2 + Chicken Biryani * 1).
o The total cost should be shown correctly, without GST (₹50 * 2 + ₹150 * 1 = ₹250).
Objective: Ensure that the system handles invalid item selections properly.
Steps:
o The system should display an error message: "Invalid item number. Please try again."
Objective: Ensure that the system handles invalid quantity inputs (non-numeric input).
Steps:
1. After selecting an item (e.g., Masala Dosa), enter a non-numeric value for quantity
(e.g., "two").
Expected Result:
o The system should display an error message: "Invalid input. Please enter numeric
values."
Objective: Ensure that the user can cancel the order before proceeding to payment.
Steps:
1. Select one or more items (e.g., Masala Dosa, Paneer Butter Masala).
2. When asked if the user wants to proceed with payment, input "n" (no).
Expected Result:
o The user should not be charged, and the order should not be processed.
Objective: Ensure that the system handles the case where no items are selected.
Steps:
1. Run the system and immediately select "0" to finish without selecting any items.
2. The system should display a message about an empty order or allow the user to
cancel without proceeding.
Expected Result:
o The system should either prompt the user to select items or display an appropriate
message like: "No items selected. Exiting order placement."
Steps:
1. Select multiple items with valid quantities (e.g., Masala Dosa x2, Chicken Biryani x1,
Pani Puri x3).
2. The system should calculate the price for each item and then sum the total.
Expected Result:
Objective: Ensure that the system displays the correct order summary after items are
selected.
Steps:
1. Select items like Masala Dosa and Paneer Butter Masala with quantities.
2. The system should display an order summary showing the name of each item,
quantity, and total price for each item.
Expected Result:
o The system should show an order summary with the correct details:
TC02 Invalid Item Selection Enter an invalid item System displays "Invalid
number (e.g., 10) item number. Please try
again."
TC03 Invalid Quantity Input Enter a non-numeric System displays "Invalid
value for quantity (e.g., input. Please enter
"two"). numeric values."
TC04 Order Cancellation Select items and input System displays "Order
"n" when asked to canceled."
proceed with payment.
TC05 Empty Order (No Items Select "0" to finish System displays "No items
Selected) without selecting selected."
items.
TC06 Multiple Items with Correct Select multiple items Total cost is calculated
Total (e.g., Masala Dosa x2, correctly: ₹340.
Chicken Biryani x1).
TC07 Correct Order Summary Select items and check Correct order summary
Display if the order summary with item names,
displays the correct quantities, and total.
details.
7.Conclusion
The Canteen Management System (CMS) is a comprehensive solution designed to automate and
optimize the ordering process in canteens, improving efficiency for both customers and
administrators. Through careful estimation of function points and effort, the project is well-defined in
terms of scope, resources, and timeline. The system's functionalities are thoroughly outlined,
including customer and admin interactions, data management, and reporting features.
Risk analysis has been performed to mitigate potential challenges, ensuring the project's smooth
progress. The testing phase is robust, with well-defined test cases to validate each module's
functionality.
In conclusion, the CMS will enhance the operational efficiency of canteens by streamlining menu
management, order processing, and payment handling. The system’s development is backed by clear
estimates, feasibility studies, and risk mitigation strategies, ensuring its successful implementation
within the planned timeframe.