This is our System Analysis and Design and Software Engineering project.
This is an ordering system for small food businesses.
The user can create an account by providing his/her name, date of birth, mobile number, username and password.
The user can also log in to his/her created account by providing the username and password. After the user successfully logins to his/her account, the system will directly go to the Todays Menu page.
The user can choose the food that he/she wish to order and can increase/decrease the quantity, and lastly he/she can also add it to the cart/bag.
The user can also modify his/her cart by deleting existing item or modify food's quantity.
The user can also checkout his/her order by providing mode of payment such as Pickup or Cash-on-Delivery, address if the mode of payment is C.O.D and time of delivery or pickup.
The user can view all of his/her pending, preparing, To Received, Received, and Cancelled orders. The user can cancel the order when it is still on Pending stage. In the example below, the account does not have more orders.
The user can edit his/her username, add profile picture, mobile number, and password.
The user can delete his/her profile by providing the given key of the system.
The login for the admin is seperated in our system. As you can see, there are four tabs that the admin can access.
The admin can also modify existing menu by adding, editing the name, price and availability, and by deleting.
On the admin side, it can also edit the status of the order. The admin can set it as preparing and to received. The admin can also view all the orders in different statuses.
The admin can also know total number of menus and total number of orders for today. It can also provide total sales for each month for every year.
CREATE TABLE Users (
id_number varchar(500) not null,
given_name varchar(50) not null,
middle_name varchar(50) not null,
last_name varchar(50) not null,
birthday DATE not null,
age int not null,
sex varchar(12),
username varchar(8) not null,
password varchar(150) not null,
mobile_number varchar(12),
profile_image_path varchar(50),
primary key(id_number)
);
CREATE TABLE Menu (
menu_id varchar(100),
menu varchar(50) not null,
menu_price decimal(30, 10),
image_path varchar(1000),
status varchar(30),
primary key (menu_id)
);
CREATE TABLE TRANSACTIONS (
id_number varchar(500),
menu_id varchar(100),
menu varchar(50),
order_time time(0),
location varchar(1000),
payment_method boolean,
total_price decimal(30, 10),
status varchar(30),
foreign key (id_number) references users(id_number) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (menu_id) references menu(menu_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE Orders (
id_number VARCHAR(500),
order_id VARCHAR(200),
order_date DATE,
items JSON,
order_details JSON,
status VARCHAR(30),
PRIMARY KEY (order_id),
FOREIGN KEY (id_number) REFERENCES users(id_number)
);
CREATE TABLE Cart (
id_number varchar(500),
menu_id varchar(100),
quantity int,
foreign key (id_number) references users(id_number) ON DELETE CASCADE ON UPDATE CASCADE,
foreign key (menu_id) references menu(menu_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE Admin (
username VARCHAR(100),
password VARCHAR(100)
);