You are on page 1of 21

19CSE102- C PROGRAMMING

GROUP PROJECT
ONLINE FOOD ORDERING SYSTEM-TOMATO
CB.EN.U4CHE20026
KOPPIREDDY KARTHIK REDDY

Problem Statement:
To Develop Online Food Ordering System TOMATO. Through our website and mobile application
life becomes easier. Food gets delivered directly at your doorsteps with a few taps from your device
with all safety precautions needed to be taken care off while preparing the food and as well as while
delivering it to the customer.
Functionalities:
1. Customer Signup
Here Customer signs up for a new account in the online food Ordering system TOMATO, with his
credentials like Name, age, Email address, and mobile number.
2. Validating Customer’s details
In this stage, this functionality checks with the default criteria meetup of inputs entered by Customer.
From here we are calling the validate function to validate the inputs.
Following are the functionalities to be validated:
1. Input the username: Username must contain alphabets.
2. Age: Must be greater than and not equal to 0.
3. Email Address: Email must contain @, a comma and length should be greater than 5.
4. Password: Passwords must contain length between 8 to 12 with at least one uppercase, lowercase,
number and a special character
5. Confirm the password: Both password and confirm password should be the same.
6. Mobile number: Mobile number should contain numbers and exactly 10 digits
3. Checking whether this account existed already or not
account_check(); is used to do the required job at this moment.
After the successful validation of all input fields, it checks whether the same account already exists or
not through account_check() functionality
4. Login Functionality:
This function implements the login features of our project. While login, the Email, and Password are
validated and checked whether it is already signed up.
5. Search by food and Search by hotels functionality:
After successful login of the customer there is an option to choose either Search_by_food() or
Search_by_hotels() functionalities.
6. Order by Hotel:
In this functionality, the food order is placed after selecting any Hotel. Once the hotel is selected the
list of food is displayed with their respective costs.
7. Order by Food:
Once the hotel is selected in the above step, search and select the food and enter the number of items
to order. Once the selection of all the foods is done it will display the total amount of food selected.
Once the food is selected, you need to go to option Select Cart for the successful ordering of the
foods. Move to Select Cart for the successful ordering of the foods.
8. Cart functionality:
This functionality performs the following: Display the total cost of your orders, Confirm your order
by providing payment methods and delivers your food through a assigned valet to enjoy your ordered
food.
CODE:
//C program to implement the online Food Ordering System, TOMATO.

#include <stdio.h>

#include <string.h>

#include <math.h>

//Structure to store the user details (Signup details)

struct details {

char uname[100];

int age;

char password[100];

char email[100];

char mobile[10];

};

//Structure to store the hotels and food details (FOOD MENU)

struct hotels {

char hotel[100];

char first_food[20];

char second_food[20];

char third_food[20];

char fourth_food[25];

int first, second, third, fourth;

};

struct hotels m[5];

struct details s[100];

//Function to get the inputs for creating new account.


void signup();

//Function to check whether the account is already existed or not

void account_check();

//Function to validate all the input fields given by customer.

int validate();

void login();

void cart();

void search_by_hotels();

void search_by_food();

void food_order(int food);

int search_choice;

void Search_by()

printf("1) Search By Hotels\n2) ");

printf("Search by Food\n3) ");

printf("Exit\n\nPlease Enter");

printf("your choice\t");

scanf("%d", &search_choice);

switch (search_choice) {

case 1: {

search_by_hotels();

break;

case 2: {

search_by_food();

break;

case 3: {

// exit(1);

return;

default: {

printf("Please Enter ");

printf(" the valid choice\n\n");

break;

}
}

//Function to initialize the hotels and food structure dynamically

void hotel_initialize();

void hotels(int hotel_choice);

int flag = 1, i, j = 0, count = 0, caps = 0;

int small = 0, special = 0, numbers = 0;

int success = 0, x, choice;

char temp_name[100], temp_password1[100];

char temp_password2[100], temp_email[100];

char temp_mobile[100];

int temp_age, total = 0,totalf=0,totalh=0,food_choice, n;

int hotel_choice, confirm;

int ch, food, hotel_id;

//welcome Code for the Food Ordering System, TOMATO

int main()

while (1) {

printf("\n\n\t\t'Welcome to TOMATO'\n");

printf(" \nONE PLACE WHERE PEOPLE FALL IN LOVE WITH FOOD\n\n\n1)SIGNUP\n");

printf("2)LOGIN\n3)EXIT\n\n");

printf("Please Signup or Login to continue further for purchasing food online\t");

printf("\nSelect the appropriate choice to continue; ");

scanf("%d", &choice);

switch (choice) {

case 1: {

signup();

break;

case 2: {

login();

break;

case 3: {

// exit(1);

return 0;

default: {

printf("\nPlease Enter the ");

printf(" valid choice\n");

break;
}

//Function to create a new user for the Food ordering system, TOMATO

void signup()

printf("Enter Your name: ");

scanf("%s", temp_name);

printf("Enter Your Age: ");

scanf("%d", &temp_age);

printf("Enter Your Email Address: ");

scanf("%s", temp_email);

printf("Enter Password: ");

scanf("%s", temp_password1);

printf("Confirm Password: ");

scanf("%s", temp_password2);

printf("Enter Your Mobile Number: ");

scanf("%s", temp_mobile);

//Function Call to validate the user creation

x = validate();

if (x == 1)

account_check();

//Function to validate the user for signup process

int validate()

//for Validating the name

for (i = 0; temp_name[i] != '\0'; i++) {

if (!((temp_name[i] >= 'a' && temp_name[i] <= 'z')

|| (temp_name[i] >= 'A'

&& temp_name[i] <= 'Z'))) {

printf("\nPlease Enter the");

printf(" valid Name\n");

flag = 0;

break;

if (flag == 1) {
count = 0;

//for Validating the Email ID

for (i = 0;

temp_email[i] != '\0'; i++) {

if (temp_email[i] == '@'

|| temp_email[i] == '.')

count++;

if (count >= 2

&& strlen(temp_email) >= 5) {

// Validating the Password and Check whether it matches with Conform Password

if (!strcmp(temp_password1,

temp_password2)) {

if (strlen(temp_password1) >= 8

&& strlen(temp_password1) <= 12) {

caps = 0;

small = 0;

numbers = 0;

special = 0;

for (i = 0; temp_password1[i] != '\0';

i++) {

if (temp_password1[i] >= 'A'

&& temp_password1[i] <= 'Z')

caps++;

else if (temp_password1[i] >= 'a'

&& temp_password1[i]

<= 'z')

small++;

else if (temp_password1[i] >= '0'

&& temp_password1[i]

<= '9')

numbers++;

else if (temp_password1[i] == '@'

|| temp_password1[i] == '&'

|| temp_password1[i] == '#'

|| temp_password1[i]

== '*')

special++;

if (caps >= 1 && small >= 1

&& numbers >= 1 && special >= 1) {


// Validating the Input age

if (temp_age != 0 && temp_age > 0) {

// Validating the Input mobile number

if (strlen(temp_mobile) == 10) {

for (i = 0; i < 10; i++) {

if (temp_mobile[i]

>= '0'

&& temp_mobile[i]

<= '9') {

success = 1;

else {

printf("\n\nPlease ");

printf("Enter Valid ");

printf("Mobile "

"Number\n\n");

return 0;

break;

// Success is assigned with value 1, Once every inputs are


correct.

if (success == 1)

return 1;

else {

printf("\n\nPlease Enter the ");

printf("10 digit mobile ");

printf("number\n\n");

return 0;

else {

printf("\n\nPlease Enter ");

printf("the valid age\n\n");

return 0;

else {

printf("\n\nPlease Enter the ");


printf("strong password, Your ");

printf("password must contain ");

printf("atleast one uppercase, ");

printf("Lowercase, Number and ");

printf("special character\n\n");

return 0;

else {

printf("\nYour Password is very ");

printf("short\nLength must ");

printf("between 8 to 12\n\n");

return 0;

else {

printf("\nPassword Mismatch\n\n");

return 0;

else {

printf("\nPlease Enter"

" Valid E-Mail\n\n");

return 0;

//Function to check if the account already exists or not

void account_check()

for (i = 0; i < 100; i++) {

// Check whether the email and password are already matched with existed account

if (!(strcmp(temp_email, s[i].email)

&& strcmp(temp_password1,

s[i].password))) {

printf("\n\nAccount Already ");

printf("Existed. Please Login!!\n\n");

main();

break;

}
// if account does not already existed, it creates a new one with new inputs

if (i == 100) {

strcpy(s[j].uname, temp_name);

s[j].age = temp_age;

strcpy(s[j].password, temp_password1);

strcpy(s[j].email, temp_email);

strcpy(s[j].mobile, temp_mobile);

j++;

printf("\n\n\nAccount Successfully");

printf(" Created!!\n\n");

//Function to Login for users

void login()

printf("\n\nLOGIN\n\n");

printf("\nEnter Your Email: ");

scanf("%s", temp_email);

printf("Enter Your Password: ");

scanf("%s", temp_password1);

for (i = 0; i < 100; i++) {

//Check whether the input email is already existed or not

if (!strcmp(s[i].email, temp_email)) {

// Check whether the password is matched with the email or not

if (!strcmp(s[i].password, temp_password1)) {

printf("\n\nWelcome %s, ", s[i].uname);

printf("Your are successfully ");

printf(" logged in\n\n");

Search_by();}

//Getting the input from user how is going to search

else {

printf("\n\nInvalid Password! ");

printf("Please Enter the ");

printf("correct password\n\n");

main();

break;

else {

printf("\n\nAccount doesn't ");

printf("exist, Please signup!!\n\n");

main();
break;

//Function to implement the Hotel

//initialzer

void hotel_initialize()

//Initializing the structure

//with hotel Abhinaya and

//some food items names and with

//their respective costs.

strcpy(m[1].hotel, "Abhinaya family restaurant");

strcpy(m[1].first_food, "Sandwich");

strcpy(m[1].second_food, "Pizza");

strcpy(m[1].third_food, "Fried_Rice");

m[1].first = 70;

m[1].second = 100;

m[1].third = 95;

//Initializing the structure

//with hotel EMARALD and

//some food items names and with

//their respective costs.

strcpy(m[2].hotel, "EMERALD");

strcpy(m[2].first_food, "Parotta");

strcpy(m[2].second_food, "Noodles");

strcpy(m[2].third_food, "Chicken_Rice");

m[2].first = 15;

m[2].second = 75;

m[2].third = 80;

//Initializing the structure

//with hotel SS PARADISE and

//some food items names and with

//their respective costs.

strcpy(m[3].hotel, "SS PARADISE");

strcpy(m[3].first_food, "Chicken_Biriyani");

strcpy(m[3].second_food, "Prawn");

strcpy(m[3].third_food, "Faloda");

m[3].first = 90;
m[3].second = 120;

m[3].third = 35;

//Function to implement the search by hotels

void search_by_hotels()

hotel_initialize();

printf(""

"\n\nPlease Choose the ");

printf("hotels\n\n1) %s\n2) %s\n3) %s",

m[1].hotel,

m[2].hotel, m[3].hotel);

printf("\n4) Exit\n\nPlease ");

printf("select the hotel:\t");

scanf("%d", &hotel_choice);

if (hotel_choice > 4) {

printf("Please Enter the");

printf(" valid choice\n\n");

search_by_hotels();

else if (hotel_choice == 4)

// exit(1);

Search_by();

else

hotels(hotel_choice);

// Function to implement the hotel

void hotels(int hotel_choice)

totalh;

while (1) {

//Displays the list of

//foods available in

//selected hotel

printf("\n\nList of foods available");

printf("in %s\n\n1) %s\tRs: %d\n2)",

m[hotel_choice].hotel,

m[hotel_choice].first_food,

m[hotel_choice].first);
printf("%s\tRs: %d\n3) %s\tRs: %d\n4)",

m[hotel_choice].second_food,

m[hotel_choice].second,

m[hotel_choice].third_food,

m[hotel_choice].third);

printf("Cart\n5) Exit\n\nPlease Enter");

printf("Your Choice:\t");

scanf("%d", &food_choice);

//Get the input for no of foods to calculate the total amount

if (food_choice == 1) {

printf("Please Enter the ");

printf("Count of %s\t",

m[hotel_choice].first_food);

scanf("%d", &n);

totalh = totalh

+ (n * m[hotel_choice].first);

else if (food_choice == 2) {

printf("Please Enter the Count");

printf("of %s\t",

m[hotel_choice].second_food);

scanf("%d", &n);

totalh = totalh

+ (n * m[hotel_choice].second);

else if (food_choice == 3) {

printf("Please Enter the Count");

printf("of %s\t",

m[hotel_choice].third_food);

scanf("%d", &n);

totalh = totalh

+ (n * m[hotel_choice].third);

//Once the user, completed their order, they can go to cart by giving choice as 4.

else if (food_choice == 4) {

cart();

else if (food_choice == 5) {
search_by_hotels("");

else {

printf("Please Enter the");

printf("valid Choice\n\n");

void search_by_food()

printf("1)FOOD MENU\n2)Cart\n3)EXIT\nEnter your Choice: ");

scanf("%d",&food);

if(food==1)

{int hotel_CH,Food_CH,nf,CH;

do{

printf("\nThe food items are:\n");

printf("1)Pav Bhaji\n2)Sandwich\n3)PaniPuri\n4)Jalebi\n5)Dhokla\n");

printf("\nEnter your Choice:");

scanf("%d",&Food_CH);

if(Food_CH==1)

printf("1)Arabian Nights - Rs.90\n2)Hotel Daspalla - Rs.100\n");

printf("Enter your hotel choice:");

scanf("%d",&hotel_CH);

if(hotel_CH==1)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*90);

else if(hotel_CH==2)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*100);

else{

printf("\nInvalid Choice.Please Enter again\n");

}
}

else if(Food_CH==2)

printf("1)NOVOTEL - Rs.100\n2)Barbeque Nation - Rs.70\n");

printf("Enter your hotel choice:");

scanf("%d",&hotel_CH);

if(hotel_CH==1)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*100);

else if(hotel_CH==2)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*70);

else{

printf("\nInvalid Choice. Please Enter again");

else if(Food_CH==3)

printf("1)NOVOTEL - Rs.40\n2)Hotel Daspalla - Rs.40\n");

printf("\nEnter your hotel choice:");

scanf("%d",&hotel_CH);

if(hotel_CH==1)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*40);

else if(hotel_CH==2)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*40);

else{

printf("\nInvalid Choice. Please Enter again");


}

else if(Food_CH==4)

printf("1)Arabian Nights - Rs.30\n2)Hotel Daspalla - Rs.40\n");

printf("\nEnter your hotel choice:");

scanf("%d",&hotel_CH);

if(hotel_CH==1)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*30);

else if(hotel_CH==2)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*40);

else{

printf("\nInvalid Choice.Please Enter again");

else if(Food_CH==5)

printf("1)Barbeque Nation - Rs.30\n2)Hotel Daspalla - Rs.40\n");

printf("\nEnter your hotel choice:");

scanf("%d",&hotel_CH);

if(hotel_CH==1)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*30);

else if(hotel_CH==2)

printf("\nEnter the number of items you want:");

scanf("%d",&nf);

totalf=totalf+(nf*40);

else{

printf("\nInvalid Choice.Please Enter again");


}

else{

printf("\nInvalid Choice.Please Enter again");

printf("\nDo you want to continue?(1=Yes, 0=No)");

scanf("%d",&CH);

}while(CH==1);

printf("\nOrder total is Rs.%d\n",totalf);

search_by_food();

else if(food==2)

cart();

else if(food==3)

Search_by();

else{printf("\nInvalid Choice\n");

search_by_food();}

//Function to implement the cart

void cart()

int MP,CVV,CN,dcount;

total=totalf+totalh;

printf("\n\n\n\n--------------Cart");

printf("----------------");

printf("\nYour Total Order ");

printf("Amount is %d\n", total);

printf("\n\nDo You wish to ");

printf("order (y=1/n=0):");

scanf("%d", &ch);

if (ch == 1) {do{

printf("\nSelect the mode of payment\n1.debitcard\n2.cash on delivery\n3.collect the parcel by me");

printf("\nEnter your mode of payment:");

scanf("%d", &MP);

if(MP==1)
{

do{

printf("\nEnter your card number:");

scanf("%d", &CN);

dcount=0;

while(CN!=0){

dcount=dcount+1;

CN=CN/10;

}while(dcount!=10);

do{

printf("\nEnter your CVV:");

scanf("%d",&CVV);

}while(CVV<6);

else if(MP==2)

printf("\nYou have selected the cash on delivery mode.\nYou have successfully placed the order. The order will be delivered shortly");

else if(MP==3)

printf("\nYour order has been placed successfully. You can collect your parcel.");

else {printf("Invalid choice. Try Again!");}}while(MP>3);

printf("\n\nThank You for your ");

printf("order!! Your Food is on ");

printf("the way. Our Tomato valet will reach you soon with the food. Stay safe, Welcome again!!\n\n");

// exit(1);

total=0;

totalf=0;

totalh=0;

login();

else if (ch == 0) {

printf("Do You want to exit -1");

printf("or Go back -0");

scanf("%d", &confirm);

if (confirm == 1) {

printf("\n\nOops! Your order is");

printf("cancelled!! Exiting..");

printf("Thank You visit again TOMATO!\n");

// exit(1);
return;

else {

printf("\n\nThank You\n\n");

login();

else {

printf("\n\nPlease Enter the ");

printf("correct choice\n\n");

cart();

Sample outputs:
For successful creation of account
For customer login

Searching by hotels
To select multiple food items from the same restaurant and entering the cart to
calculate total bill
Continuing further to complete the billing

You might also like