Ms Dotnet
Ms Dotnet
A PROJECT REPORT
Submitted by
MRUTYUNJAY SAHOO
in
COMPUTER APPLICATIONS
1
DEPARTMENT OF MASTER IN COMPUTER APPLICATIONS SCHOOL
OF ENGINEERING AND TECHNOLOGY
BHUBANESWAR CAMPUS
BONAFIDE CERTIFICATE
Certified that this project report FOOD DELIVERY WEB APPLICATION is the
bonafide work of “MRUTYNJAY SAHOO” who carried out the project work under my
supervision. This is to further certify to the best of my knowledge, that this project has not
been carried out earlier in this institute and the university.
SIGNATURE
Certified that the above-mentioned project has been duly carried out as perthe norms of the
college and statutes of the university.
SIGNATURE
(Prof. Mr. Rakesh Kumar Ray)
DEPARTMENT SEAL
2
DECLARATION
I hereby declare that the project entitled “Food Delivery Web Application” submitted
for the “Major Project” of 4th semester MCA in Computer Science and Engineering is my
original work and the project has not formed the basis for the award of any Degree or
any other similar titles in any other University / Institute.
3
ACKNOWLEDGEMENT
I am highly grateful to Mr. Subham Sahu who evinced keen interest and invaluable
support in the progress and successful completion of my project work.
I am indebted to Mr. Subham Sahu for their constant encouragement, co- operation
and help. Words of gratitude are not enough to describe the accommodation and fortitude
which they have shown throughout my endeavor.
4
TABLE OF CONTENTS
5
Abstract
It is about creating a website for ordering food online, using a technology called .NET
framework. It's like those apps you use to order food from different restaurants, but this
one will be on a website.
The website will have one main parts: people who order food (User Module). If you're
ordering food, you can go to the website, look at menus, pick what you want and, pay
securely when it's coming. And if you're running the website, you can control users,
restaurants, and how the whole system works.
The website will be easy to use, with clear buttons and menus, and it will keep your
payment information safe. It will also show you where your food is in real-time, so you
know exactly when to expect it. Plus, it will have some fancy features like suggesting
food you might like based on what you've ordered before, and it will give insights to
restaurants about how well they're doing.
I'll build the website using .NET, which is a set of tools for making websites. I'll use
different parts of .NET to make the website look good, work fast, and keep all the
information safe. It will be able to handle lots of people using it at once, and we'll make
sure it's reliable and won't break easily. In the end, we want to make a website that makes
ordering food online easy and fun for everyone.
6
1.0. Introduction
Today, life moves fast, and we all love things that make it easier. Online shopping changed
how we buy stuff, and the food industry caught up too. Now, you can order food online, just
like you shop for clothes or gadgets. This project is about making one of those systems using
a technology called .NET.
Think of it like this: You're hungry, but you don't feel like cooking. Instead of calling a
restaurant, you open a website, browse through menus, pick what you want, and voila! Your
food is on its way to your doorstep. That's what this system does.
I’m using .NET because it's like a toolbox full of tools for building websites. With .NET,
i can make sure the website looks good, works smoothly, and keeps your information safe.
This website will be easy to use, it will keep your payment info safe, and it will even give
you suggestions based on what you've ordered before. Plus, it will help restaurants figure out
what's popular and how they can do better. In short, this project is about making ordering
food online simple and fun for everyone.
People love online food ordering because it's easy. You can see all the menus and place
orders without leaving your home or office. Plus, there are lots of different restaurants to
choose from, so you can try new foods whenever you want.
That's where the .NET framework comes in. It's like a toolbox that helps developers build
websites and apps. With .NET, we can create a really good online food ordering system
that's easy to use and keeps your information safe. But even though there are already
many online food ordering systems out there, we think there's still room to make them
even better. Some might be missing important features, or they might not be as easy to
use as they could be. So, our project is all about making a new online food ordering
system using .NET. We want to focus on making it really easy for customers use.
7
1.2. Statement of Problem
Complex Interfaces: Some food ordering websites or apps are too complicated, making it
hard for users to find what they want or place an order easily. This can frustrate users
and make them give up, which isn't good for keeping them happy and coming back.
Mistakes in Orders: Sometimes, orders placed online aren't accurate. This could mean
missing items or getting the wrong food altogether. When this happens, customers get
upset and might not want to use the service again, losing trust in it.
Payment Problems: Making payments online should be easy and secure, but sometimes
online food ordering systems have issues with processing payments smoothly. This
could lead to delays or errors, which makes users worried about their money and less
likely to complete their order.
8
2.0. Online Food Delivery System
Online food delivery systems are like having a magical food genie in your phone or computer.
With just a few taps, you can order your favorite food and have it delivered right to your
doorstep. It's like having your own personal chef, but way simpler. You get to choose from lots
of types of food without ever leaving your home. And the best part? You can track your food
as it travels to you, so you'll know exactly when it'll arrive. It's super easy, delicious, and
basically the best invention since sliced bread!
2.1.Research Methodology
• Understanding Needs: Start by talking to people who might use the system—customers
and restaurant owners—to find out what they want and need.
• Learning from Others: Look at what other similar systems have done and what
researchers have found about making these kinds of systems work well.
• Planning the System: Figure out how the system will look and work, including what
buttons will be where and how orders will be processed.
• Building the System: Actually create the online food ordering system using a technology
called .NET, making sure everything works like it's supposed to.
• Testing and Fixing: Try out the system to see if it works correctly and fix any problems or
mistakes you find.
• Putting It Out There: Once it's all good, put the system online so people can use it.
• Making It Better: If there are things that could be improved, go back and make changes to
the system to make it even better.
9
3.0 Data Flow Diagram(DFD)
A data flow diagram (DFD) is a graphical representation of the “flow” of data through
an information system, modeling its process aspects. A DFD shows what kind of
information will be input to and output from the system, where the data will come from
and go to and where the data will be stored.
10
3.1 Use Case Diagram For Users and Admin
In other words, It describes “who” can do “what” with the system in question. The use
case technique is used to capture a system’s behavioural requirements by detailing
scenario driven threads through the functional requirements.
11
4.0 CODE
Ticketing is the most important module in this Project which uses all the tables together
and calculates fare for the passengers. Venting the tickets is done using the route
number, bus type, beginning stop, end stop, ticket number, persons(Adult/child)rate,
date and time also we want to print the all these information. In order to do the
calculation data has to be pulled out from stops, bus, trip and route. Number of
passengers & the states are entered by the Venter and to produce the tickets.
Steps:
1. In Visual Studio select new project
2. Select ASP.Net web application template
3. Name the project as FoodApplication
4.1 LAYOUT.ASPX
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - Food Application</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/FoodApplication.styles.css" asp-append-
version="true" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/6.5.1/css/all.min.css" integrity="sha512-
DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9
QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous"
referrerpolicy="no-referrer" />
<link rel="stylesheet" href="~/css/jquery-ui.min.css" />
</head>
<body>
<header class="position-sticky top-0">
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-
white border-bottom box-shadow mb-3">
<div class="container-fluid">
<a class="navbar-brand text-pink fw-bold" asp-area="" asp-controller="Home"
asp-action="Index">Food Application</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-
target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
12
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-pink fw-bold" asp-area="" asp-controller="Home" asp-
action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-pink fw-bold" asp-area="" asp-controller="HomeController1" asp-
action="Index">Recipes</a>
</li>
</ul>
@if (User.Identity!.IsAuthenticated)
{
<div class="d-flex justify-content-center align-content-center">
<div class="text-center">
<span class="p-4" id="cartListIcon"><i class="fa-solid fa-cart-shopping text-pink fs-
4"></i></span>
<div id="showCartList" class="position-absolute shadow rounded p-2 bg-white">
</div>
</div>
<div>
<a class="nav-link fw-bold text-pink" asp-controller="Account" asp-
action="LogOut">LogOut</a>
</div>
</div>
}
else
{
<div>
<a class="nav-link fw-bold text-pink" asp-controller="Account" asp-
action="Login">LogIn</a>
</div>
}
</div>
</div>
</nav>
</header>
<div class="container-fluid">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
14
4.2 INDEX.ASPX
@{
ViewData["Title"] = "Home Page";
}
<div class="container">
<div class="row shadow rounded">
<div class="col-sm-12 col-md-6 col-lg-6 col-xl-6">
<div id="carouselExampleSlidesOnly" class="carousel slide " data-bs-ride="carousel">
<div class="carousel-inner h-100">
<div class="carousel-item h-100 active">
<img src="/Images/NewFolder/food.jpg" class="d-block w-100 h-100" alt="Recipes">
</div>
<div class="carousel-item h-100 ">
<img src="/Images/NewFolder/food2.jpg" class="d-block w-100 h-100" alt="Recipes">
</div>
<div class="carousel-item h-100 ">
<img src="/Images/NewFolder/food3.jpg" class="d-block w-100 h-100" alt="Recipes">
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6 col-lg-6 col-xl-6">
<div class="mb-3">
<h2>Get The Best<span class="text-success fst-italic"> Food</span> From <span
class="text-success">The Best Restrurants</span></h2>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-4 col-md-4 col-lg-4 col-xl-4">
<div id="shadow-rounded dishCard" class="card">
<img class="card-img-top h-75" src="http://forkify-
api.herokuapp.com/images/gelatin_poke_cake2d07.jpg" alt="dish" />
<div class="card-body">
<h4 class="card-title text-dark">Cake</h4>
<div class="d-flex flex-wrap justify-content-between">
<a href="/HomeController1/Order?id=5ed6604591c37cdc054bcd9e"
class="btn btn-sm bg-black text-white shadow rounded p-2">Order</a>
<span class="addToCartIcon" onclick="cart.call(this)" data-
recipeId="5ed6604591c37cdc054bcd9e"><i class="fa-regular fa-heart fs-
3"></i></span>
</div>
</div>
</div>
</div>
<div class="col-sm-4 col-md-4 col-lg-4 col-xl-4">
<div id="shadow-rounded dishCard" class="card">
<img class="card-img-top h-75" src="http://forkify-
api.herokuapp.com/images/5091364415_b1058dec47_o78aa.jpg" alt="dish" />
<div class="card-body">
<h4 class="card-title text-dark">Chicken</h4>
<div class="d-flex flex-wrap justify-content-between">
<a href="/HomeController1/Order?id=5ed6604591c37cdc054bced8" class="btn btn-sm
bg-black text-white shadow rounded p-2">Order</a>
<span class="addToCartIcon" onclick="cart.call(this)" data-
16
recipeId="5ed6604591c37cdc054bced8"><i class="fa-regular fa-heart fs-
3"></i></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
4.3 SEARCHBAR.ASPX
4.4 SHOWORDER.ASPX
@model FoodApplication.Models.OrderRecipeDetails
4.5 INDEX.ASPX
@{
ViewData["Title"] = "Recipe";
}
<div class="container-fluid">
<div class="row mb-4">
<div class="col-12">
@Html.Partial("_SearchBar")
</div>
</div>
<div class="row">
<div class="col-2">
<div class="shadow rounded position-sticky" id="recipe-list">
<div class="border-bottom border-3 p-2">
<h4 class="text-pink text-center fst-italic">Recipes</h4>
@Html.Partial("Index1")
</div>
</div>
</div>
<div class="col-10">
<div class="mb-3">
<h4 class="text-dark">Pizza</h4>
<div class="row" id="pizzaRecipe"></div>
</div>
<div class="mb-3">
<h4 class="text-dark">Cake</h4>
<div class="row" id="cakeRecipe"></div>
</div>
<div class="mb-3">
<h4 class="text-dark">Chicken</h4>
<div class="row" id="chickenRecipe"></div>
</div>
<div class="mb-3">
<h4 class="text-dark">Chocolate</h4>
<div class="row" id="chocolateRecipe"></div>
20
</div>
</div>
</div>
</div>
<script src="/lib/jquery/dist/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
GetRecipes("Pizza", "pizzaRecipe", false);
GetRecipes("Cake", "cakeRecipe", false);
GetRecipes("Chicken", "chickenRecipe", false);
GetRecipes("Chocolate", "chocolateRecipe", false);
})
</script>
4.6 INDEX1.aspx
<ul class="list-group-flush px-0 vh-100 overflow-auto">
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=mushrooms">Mushrooms</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=pumpkin">Pumpkin</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=apple">Apple</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=banana">Banana</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=blackberry">Blackberry</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=blueberry">Blueberry</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=grape">Grape</a>
</li>
<li class="recipe-item list-group-item">
21
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=mango">Mango</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=orange">Orange</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=papaya">Papaya</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=pineapple">Pineapple</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=strawberry">Strawberry</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=watermelon">Watermelon</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=pizza">Pizza</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=pasta">Pasta</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=popcorn">Popcorn</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=hamburger">Hamburger</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=pie">Pie</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=cake">Cake</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=sausage">Sausage</a>
22
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=kebab">Kebab</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=poutine">Poutine</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=seafood">Seafood</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=chips">Chips</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=fries">Fries</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=masala">Masala</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=chicken">Chicken</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=chocolate">Chocolate</a>
</li>
<li class="recipe-item list-group-item">
<a class="text-decoration-none text-dark"
href="/HomeController1/Search?recipe=sushi">Sushi</a>
</li>
</ul>
4.7 ORDER.ASPX
@{
ViewData["Title"] = "Order";
}
<div class="container-fluid">
<div class="row mb-4">
<div class="col-12">
@Html.Partial("_SearchBar")
23
</div>
</div>
<div class="row">
<div class="col-2">
<div class="shadow rounded position-sticky" id="recipe-list">
<div class="border-bottom border-3 p-2">
<h4 class="text-pink text-center fst-italic">Recipes</h4>
@Html.Partial("Index1")
</div>
</div>
</div>
<div class="col-10">
<div class="mb-3">
<div class="row" id="recipeDetails"></div>
</div>
</div>
</div>
</div>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function (){
getOrderRecipe('@ViewBag.Id', 'recipeDetails');
})
</script>
4.8 RECIPECARD.ASPX
@model IEnumerable<FoodApplication.Models.Recipe>
24
</div>
</div>
</div>
</div>
</div>
}
4.9 SEARCH.ASPX
@{
ViewData["Title"] = "Search";
}
<div class="container-fluid">
<div class="row">
<div class="col-12">
@Html.Partial("_SearchBar")
</div>
</div>
<div class="row">
<div class="col-2">
<div class="shadow rounded position-sticky" id="recipe-list">
<div class="border-bottom border-3 p-2">
<h4 class="text-pink text-center fst-italic">Recipes</h4>
@Html.Partial("Index1")
</div>
</div>
</div>
<div class="col-10">
<h2 class="text-dark">Search Recipes</h2>
<div id="searchRecipes" class="row"></div>
</div>
</div>
</div>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
GetRecipes('@ViewBag.Recipe', 'searchRecipes', true);
})
</script>
4.10 CARTLIST.ASPX
@model IEnumerable<FoodApplication.Models.Cart>
@{
ViewData["Title"] = "Cart";
}
<div class="container">
<div class="row">
<div class="col-12">
<div class="border-bottom">
<h4 class="text-dark">Recipe Cart</h4>
<p class="text-muted fst-italic">@Model.Count() Recipes in Cart</p>
</div>
</div>
@foreach(var cart in Model)
{
<div class="border-bottom d-flex flex-wrap p-2">
<img src="@cart.Image_url" class="cartImage"/>
<a href="/HomeController1/[email protected]" class="text-decoration-none text-
dark px-2 cartTitle fw-bold">@cart.Title</a>
<span onclick="removeCartFromList('@cart.RecipeId')" class="text-danger fw-bold p-2
removeCartBTN">Remove</span>
</div>
}
@if(Model.Count() == 0)
{
<div class="text-center">
<i class="fa-solid fa-cart-shopping emptyCart"></i>
<p class="fw-bold fs-4">Your Cart is Empty</p>
</div>
}
</div>
</div>
5.1 LOGIN.ASPX
@model FoodApplication.Models.LoginViewModel
26
@{
ViewData["Title"] = "Login";
}
<div class="container">
<div class="row shadow-rounded">
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-6">
<div>
<img src="~/Images/french-fries.jpg" class="w-100" />
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-6">
<form autocomplete="off" method="post" class="m-3 p-3">
<div class="mb-3">
<h2 class="text-pink fst-italic">Login</h2>
<span class="fst-italic text-muted">Login into your account</span>
</div>
<div class="mb-3">
@Html.ValidationSummary()
</div>
<div class="form-floating mb-3">
@Html.TextBoxFor(m => m.Email, new {@class = "form-control", placeholder="Email" })
<label for="Email">Email</label>
</div>
<div class="form-floating mb-3">
@Html.TextBoxFor(m => m.Password, new { @class = "form-control", placeholder =
"Email", type = "password" })
<label for="Password">Password</label>
</div>
<div class="mb-3">
<button class="btn btn-sm btn-dark w-100 p-2 shadow-lg rounded"
type="submit">Login</button>
</div>
<div class="mb-3">
<span>Don't have an account?</span><a asp-controller="Account" asp-action="Register"
class="text-decoration none text-dark">Register here</a>
</div>
</form>
</div>
</div>
</div>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
5.2 REGISTER
@model FoodApplication.Models.RegisterViewModel
@{
ViewData["Title"] = "Register";
27
}
<div class="container">
<div class="row shadow rounded">
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-6">
<div>
<img src="/Images/Thali.jpg" class="w-100 h-100" alt="Thali" />
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-6">
<form autocomplete="off" method="post" class="m-3 p-3" action="/Account/Register">
<div class="mb-3">
<h2 class="text-pink fst-italic">Register</h2>
<span class="fst-italic text-muted">Create your account</span>
</div>
<div class="mb-3">
@Html.ValidationSummary()
</div>
<div class="form-floating mb-3">
@Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder = "Name" })
<label for="Name">Name</label>
</div>
<div class="form-floating mb-3">
@Html.TextAreaFor(m => m.Address, new { @class = "form-control", placeholder =
"Address"})
<label for="Address">Address</label>
</div>
<div class="form-floating mb-3">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control", placeholder = "Email" })
<label for="Email">Email</label>
</div>
<div class="form-floating mb-3">
@Html.TextBoxFor(m => m.Password, new { @class = "form-control", placeholder =
"Email", type = "password" })
<label for="Password">Password</label>
</div>
<div class="mb-3">
<button class="btn btn-sm btn-dark w-100 p-2 shadow rounded"
type="submit">Register</button>
</div>
</form>
</div>
</div>
5.3 PROGRAM.CS
using FoodApplication.ConnectDBConfig;
28
using FoodApplication.Models;
using FoodApplication.Repository;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
builder.Services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<FoodApplicationDBContext>();
builder.Services.AddTransient<IData, Data>();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
29
app.Run();
namespace FoodApplication.ConnectDBConfig
{
public class FoodApplicationDBContext:IdentityDbContext<ApplicationUser>
{
public FoodApplicationDBContext(DbContextOptions<FoodApplicationDBContext>
options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
public DbSet<Order> Orders { get; set; }
public DbSet<Cart> Carts { get; set; }
}
}
30
6.0 Input and Output Design
The input design is the link between the information system and the user. It comprises
of the developing specification and procedures for data preparation and those steps are
necessary to put transaction data into a usable form for processing data entry while an
output design is a processing data entry while an output design is a process that involves
designing necessary outputs in the form of reports that should be given to the users
according to the requirements. Below are some screenshots which comprises of both
input and output designs of the proposed system.
Now from here you can create your own project or you just open it in your visual studio.
Database query is also available there.
Now execute your project by setting Layout.aspx webform as startup page...
• So this is our startup page:
31
• Now Users who do not have an account are required to register.
• After registering successfully you will get a username and password then login using
it.
32
• Now by clicking on Login button you will redirect to Home section , you will get
Menu and Recipes page.
• Then Click on Recipe page you will get many types of foods are available
33
• You can found your food by searching the food name at Search Bar and select the
Product form Menu bar.
Menubar:
SearchBar:
• You Can add your favorite product by clicking the addToCart button(Heart Symbol).
34
• You can see all the favorite item in addToCart by clicking the Add To Cart Button.
35
• Now you Can see all the OrderRecipe Details and Increase and Decrease the quantity of
the product.
• We can see all the Order data and Cart Data In database .
Order data:
Cart Data
36
5.0 Summery
❖ User Interface: Clean, intuitive design for ease of navigation, with user-friendly
features such as menus, cart, and order tracking.
❖ Authentication: Secure login system for users, restaurants, and delivery personnel,
utilizing .NET’s Identity framework for authentication and authorization.
❖ Database Management: Utilization of Entity Framework for efficient database
operations, supporting CRUD (Create, Read, Update, Delete) operations for
handling data related to users, orders, and menu items.
❖ API Integration: Development of RESTful APIs to allow seamless data exchange
between the front-end UI and the back-end server, enhancing modularity and
scalability.
❖ Mobile Responsiveness: Ensuring the application is fully responsive and functional
across various devices and platforms, improving accessibility.
❖ Performance Optimization: Focus on optimizing load times and improving the
overall performance using .NET’s caching and asynchronous programming
features.
❖ Scalability and Maintenance: Building the application to support scalability,
handling increased traffic and data load, with easy maintenance and updates.
6.0 Conclusion
In conclusion, the development of a food delivery web application using .NET
technology offers a robust, secure, and efficient solution that meets the needs of a fast-
paced culinary market. By leveraging the powerful features of .NET, such as its
comprehensive frameworks for both front-end and back-end services, secure
authentication, and efficient data management with Entity Framework, this project
ensures a seamless, responsive, and user-friendly experience. The incorporation of
real-time tracking and secure payment options enhances user trust and satisfaction.
Additionally, the application's design for scalability and performance ensures that it
can adapt to growing user demands and changing market conditions without
compromising on service quality. Overall, this food delivery application stands as a
testament to the capabilities of modern web development with .NET, providing a
competitive edge in the burgeoning food delivery industry.
37
6.0 References
❖ Microsoft Documentation: Start by exploring the official Microsoft
documentation for ASP.NET Core, which is the recommended framework for
building modern web applications with .NET.
❖ ASP.NET Core documentation
Entity Framework Core: Learn about Entity Framework Core for data access,
essential for handling your database operations.
❖ Entity Framework Core documentation
Build a Simple CRUD App with ASP.NET Core: This tutorial by Okta
developer blogs is a great starting point for understanding basic web app
development in
ASP.NET Core.
❖ Simple CRUD App with ASP.NET Core
Flick, U. (2009): An Introduction to Qualitative Research. London: SAGE
Hevner A., March S., Park J., and Ram, S. (2004): Design Science in
Information Systems Research. MIS Quarterly.
❖ Kevin O. C., (2012): Web-Based Bus Reservation and Ticketing System:
College of Computer Studies, Ateneo de Naga University, Naga City,
Philippines February 26, 2012 March S., and Smith, S. (1995): Decision
Support Systems. Pp 251-266.
ASSESSMENT
Internal:
SL FULL REMARK S
RUBRICS MARKS
NO MARK
OBTAINED
Understanding the relevance, scope
1 10
and dimension of the project
2 Methodology 10
3 Quality of Analysis and Results 10
4 Interpretations and Conclusions 10
5 Report 10
Total 50
38
COURSE OUTCOME (COs) ATTAINMENT
1 2 3 4 5 6 7 8 9 10
LOW HIGH
➢ Learning Gap (if any):
39