0% found this document useful (0 votes)
61 views39 pages

Mid Term Lab Manual SEMP

The document discusses experiments from a lab manual on software engineering and project management. It includes experiments on defining a problem statement for a mini project, identifying a suitable process model with justification, understanding DevOps principles and practices, performing GIT operations, and developing a software requirements specification document. The first experiment provides details on preparing a problem statement for a selected mini project on graphical passwords. The second experiment discusses identifying an incremental process model for the project.

Uploaded by

If Sahil Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views39 pages

Mid Term Lab Manual SEMP

The document discusses experiments from a lab manual on software engineering and project management. It includes experiments on defining a problem statement for a mini project, identifying a suitable process model with justification, understanding DevOps principles and practices, performing GIT operations, and developing a software requirements specification document. The first experiment provides details on preparing a problem statement for a selected mini project on graphical passwords. The second experiment discusses identifying an incremental process model for the project.

Uploaded by

If Sahil Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 39

Vidya Vikas Education Trust’s

Universal College of Engineering, Kaman Road, Vasai-401208


Accredited B+ Grade by NAAC

LAB MANUAL
Software Engineering and Project Management Lab
Name: Uday Bharadwa
Class: TE AIML/DE
Sem: VI
Roll No:146
Batch: C1
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

List of Experiments

Exp No. 1: Prepare detailed statement of problem and Define proposed system for
the selected / allotted mini project

Exp No. 2: Identify suitable process model for the proposed system with
justification.

Exp No. 3: To understand DevOps: Principles, Practices, which aims to simplify


Software Development Life Cycle.

Exp No. 4: To Perform various GIT operations on local and Remote repositories
using GIT Cheat-Sheet

Exp No. 5: Develop Software Requirement Specification (SRS) document in IEEE


format for the project.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Experiment No:- 1

 Aim:- Prepare Detailed Statement of Problem for The Selected/Allotted Mini-Project.


 Theory:-

1. PROBLEM STATEMENT & OBJECTIVES 


∙ Graphical passwords introduce us to a whole new form of authentication. The most 
common form of authentication used today is the used of alphanumeric texts and this 
form of authentication has been proven to be prone to several forms of attacks such as 
guessing, social engineering, spywares, dictionary attacks, shoulder surfing and even 
hidden cameras. It can be frustrating to keep up with all the passwords since it is not a  
recommended that someone uses one password for more than one account or computer 
program or device. 
∙ One of the main problems graphical passwords tend to solve is the problem of a user 
using a weak password so that he/she won’t forget it and at times when users are 
encouraged to use strong passwords, they tend to use it for all their accounts and also 
users keep their passwords where attackers can access because of the fact that they
don’t  want to memorize it. Since it is easier to remember pictures than text, graphical 
passwords tend to enhance security and at the same time make it easier for the user to 
use. 

2. EXISTING SYSTEM 
Like other authentication methods, the graphical password consisted of two steps,
registration  and authentication. In the registration step, users select some images from
different categories  or produce a graphical image as his password. Later on, in the
authentication step, he needs to  select the correct images or re-draw the graphical
password which is used by him in the  registration step. In the following, these two
steps are explained in detail.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

3. PROPOSED SYSTEM 

PROPOSED SYSTEM 
The proposed system is more easy and faster than the existing system. In the
existing system  of graphical password authentication user have to select multiple
graphical images which  take lots of time and might be less secure. 
In the proposed system for login in the system, users have to type or click the
password using  a rotating wheel. Here, wheel will be divided into multiple parts
and each part will contain  some alphabets and number, and wheel will be
surrounded by a color where users have to  rotate the wheel and select the
password using unique color. 
This system will use hybrid password system where user can select he option in
which form  they want to login using graphical password system or manually by
typing.

 
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 Reference: 
∙ Paper 1: Numerical Password via Graphical Input – An Authentication System
on  Embedded Platform(2018) 
∙ Paper 2: A Shoulder-Surfing Resistant Graphical Authentication Method (2020).
∙ https://www.irjet.net/archives/V5/i3/IRJET-V5I3805.pdf 

 Conclusion: 
Hence, we have successfully prepared detailed Statement of Problem for the
allotted Mini Project.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Experiment No:- 02

 Aim:- Identify suitable process model for the selected Mini Project with justification.
 Theory:-
 Process Model
The objective of software project planning is to provide a framework that enables the
manager to make reasonable estimates of resources, cost and schedule.
These estimates are made within a limited time frame at the beginning of the software
project and should be updated regularly as the project progresses.
The planning objective is achieved through a process of information discovery that
leads to reasonable estimates.
 Project Development Approach and Justification
Main steps following project development consisted of Analysis, Designing,
Implementation and Testing. The goal of any development effort is to produce some
product.
A development process is a set of activities, together with an ordering relationship
between activities, which if performed in a manner that satisfies the ordering
relationship, will produce the desired product.
A process model is an abstract representation of a development process. In a software
development effort, the goal is to produce high quality software. The development
process is, therefore, the sequence of activities that will produce such software.
A software development process model specifies how these activities are organized in
the entire software development effort. The purpose of specifying a development
process model is to suggest an overall process for developing software.

Following are the types of software models.


1. The Linear Sequential Model (Waterfall Model)
2. The Iterative waterfall Model
3. The Prototyping Model
4. The Rapid Application Development (RAD) Model
5. The Incremental Model
6. The Spiral Model
7. The WINWIN Spiral Model
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Incremental Model
The incremental model may be viewed as a modification to the waterfall model. As
software projects increased in size, it was recognized that it is much easier, and
sometimes necessary to develop the software if the large projects are subdivided into
smaller components, which may thus be developed incrementally and iteratively. In
the early days, each component followed the waterfall process model, passing through
each step iteratively. In the incremental model the components were developed in an
overlapping fashion, as shown in figure 1. The component all had to be integrated and
then tested as whole in a final system test. The incremental model provided a certain
amount of risk containment. If any one component ran into trouble, the other
components were able to still continue to be developed independently.

Unless the problem was a universal one such as the underlying technology being
faulty. one problem would not hold up the entire development process.

Another perspective in utilizing the incremental model is to first develop the "core"
software that contains most of the required functionality. The first increment may be
delivered to users and customers as release 1. Additional functionality and
supplemental features are then developed and delivered separately as they are
completed, becoming Release 2, Release 3, and so on. Utilizing the incremental
model in this fashion provides an approach that is more akin to an evolutionary
software product development. When utilized in this development mode, the model in
figure 1 would not have the integration bucket.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

The incremental model in figure 1 would have individual releases. For example,
Requirement 1 would be the core functionality release. Other requirements would
each depict different deliveries scenarios where the first release, Release 1, is the core
function, followed by subsequent releases that may include fixes of bugs from
previous releases along with new functional features. The multiple release incremental
models also make it possible to evolve the first release, which may have flaws, into an
ideal solution through subsequent releases.

Thus it facilities evolutionary software development and management, a model that


has been advocated by many, especially by tom Glib who has written recently about
the "evo" process (2004). The number of releases for a software project will depend
on the nature and goals of the project. Although each release is independently built,
there is a link between releases because the existing design and code of the previous
release is the basis upon which future release are built.

Both incremental models utilize the "divide and conquer" methodology where a large,
complex problem is decomposed into parts. The difficulty with this model is that such
problems are also intertwined, making the decoupling of the parts into independently
implementable components difficult. It will require a deep understanding of the
problem, the solution, and the usage environment. Overlapping the different
increments is another area of difficulty in that there may be some amount of
sequential dependency of information among the components. How much overlapping
can take place depends on how much prerequisite information is required.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

  Conclusion
A software process model is an abstraction of the software development process. The
models specify the stages and order of a process. So, think of this as a representation
of the order of activities of the process and the sequence in which they are performed.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Experiment No:- 03

 Aim:- Case Study on Devops.


 Theory:-

1. What Is DevOps?
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate
the processes between software development and IT teams. It emphasizes team
empowerment, cross-team communication and collaboration, and technology automation.

The DevOps movement began around 2007 when the software development and IT
operations communities raised concerns about the traditional software development
model, where developers who wrote code worked apart from operations who deployed
and supported the code. The term DevOps, a combination of the words development and
operations, reflects the process of integrating these disciplines into one, continuous
process.

2. How does DevOps work?


A DevOps team includes developers and IT operations working collaboratively
throughout the product lifecycle, in order to increase the speed and quality of software
deployment. It’s a new way of working, a cultural shift, that has significant implications
for teams and the organizations they work for.

Under a DevOps model, development and operations teams are no longer “siloed.”
Sometimes, these two teams merge into a single team where the engineers work across
the entire application lifecycle — from development and test to deployment and
operations — and have a range of multidisciplinary skills.

DevOps teams use tools to automate and accelerate processes, which helps to increase
reliability. A DevOps toolchain helps teams tackle important DevOps fundamentals
including continuous integration, continuous delivery, automation, and collaboration.

DevOps values are sometimes applied to teams other than development. When security
teams adopt a DevOps approach, security is an active and integrated part of the
development process. This is called DevSecOps.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

3. What are the benefits of DevOps?


 Speed
Teams that practice DevOps release deliverables more frequently, with higher
quality and stability. In fact, the DORA 2019 State of DevOps report found that
elite teams deploy 208 times more frequently and 106 times faster than low-
performing teams. Continuous delivery allows teams to build, test, and deliver
software with automated tools.
 Improved collaboration
The foundation of DevOps is a culture of collaboration between developers and
operations teams, who share responsibilities and combine work. This makes teams
more efficient and saves time related to work handoffs and creating code that is
designed for the environment where it runs.
 Rapid deployment
By increasing the frequency and velocity of releases, DevOps teams improve
products rapidly. A competitive advantage can be gained by quickly releasing
new features and repairing bugs.
 Quality and reliability
Practices like continuous integration and continuous delivery ensure changes are
functional and safe, which improves the quality of a software product. Monitoring
helps teams keep informed of performance in real-time.
 Security
By integrating security into a continuous integration, continuous delivery, and
continuous deployment pipeline, DevSecOps is an active, integrated part of the
development process. Security is built into the product by integrating active
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

security audits and security testing into agile development and DevOps
workflows.
4. How to Adopt a DevOps Model.

 DevOps Cultural Philosophy


Transitioning to DevOps requires a change in culture and mindset. At its simplest,
DevOps is about removing the barriers between two traditionally siloed teams,
development and operations. In some organizations, there may not even be
separate development and operations teams; engineers may do both. With
DevOps, the two teams work together to optimize both the productivity of
developers and the reliability of operations. They strive to communicate
frequently, increase efficiencies, and improve the quality of services they provide
to customers. They take full ownership for their services, often beyond where
their stated roles or titles have traditionally been scoped by thinking about the end
customer’s needs and how they can contribute to solving those needs. Quality
assurance and security teams may also become tightly integrated with these
teams. Organizations using a DevOps model, regardless of their organizational
structure, have teams that view the entire development and infrastructure lifecycle
as part of their responsibilities.

 DevOps Practices Explained


There are a few key practices that help organizations innovate faster through
automating and streamlining the software development and infrastructure
management processes. Most of these practices are accomplished with proper
tooling. One fundamental practice is to perform very frequent but small updates.
This is how organizations innovate faster for their customers. These updates are
usually more incremental in nature than the occasional updates performed under
traditional release practices. Frequent but small updates make each deployment
less risky. They help teams address bugs faster because teams can identify the last
deployment that caused the error. Although the cadence and size of updates will
vary, organizations using a DevOps model deploy updates much more often than
organizations using traditional software development practices.
However, the combination of microservices and increased release frequency leads
to significantly more deployments which can present operational challenges.
Thus, DevOps practices like continuous integration and continuous delivery solve
these issues and let organizations deliver rapidly in a safe and reliable manner.
Infrastructure automation practices, like infrastructure as code and configuration
management, help to keep computing resources elastic and responsive to frequent
changes. In addition, the use of monitoring and logging helps engineers track the
performance of applications and infrastructure so they can react quickly to
problems.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Together, these practices help organizations deliver faster, more reliable updates to
their customers. Here is an overview of important DevOps practice.

  Conclusion
 
Hence, we have Successfully studied on DevOps And It’s Benefits.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

EXPEREMENT NO: 04
 Aim: To Perform various GIT operations on local and Remote repositories using GIT
Cheat-Sheet

 Theory:
1) Git Init Description:
o This command creates an empty Git repository - basically a .git directory with subdirectories
for objects, refs/heads, refs/tags, and template files. An initial branch without any commits will
be created (see the --initial-branch option below for its name).
o If the $GIT_DIR environment variable is set then it specifies a path to use instead of ./.git for the
base of the repository.
o If the object storage directory is specified via the $GIT_OBJECT_DIRECTORY environment
variable then the sha1 directories are created underneath - otherwise the
default $GIT_DIR/objects directory is used.
o Running git init in an existing repository is safe. It will not overwrite things that are already there.
The primary reason for rerunning git init is to pick up newly added templates (or to move the
repository to another place if --separate-git-dir is given).

Screenshot:
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

2) Git Status Description:


o Displays paths that have differences between the index file and the current HEAD commit, paths
that have differences between the working tree and the index file, and paths in the working tree
that are not tracked by Git (and are not ignored by git-ignore). The first are what
you would commit by running git commit; the second and third are what you could commit by
running git add before running git commit.

Screenshot:

3) Git add Description:


o This command updates the index using the current content found in the working tree, to prepare
the content staged for the next commit. It typically adds the current content of existing paths as a
whole, but with some options it can also be used to add content with only part of the changes
made to the working tree files applied, or remove paths that do not exist in the working tree
anymore.
o The "index" holds a snapshot of the content of the working tree, and it is this snapshot that is
taken as the contents of the next commit. Thus after making any changes to the working tree, and
before running the commit command, you must use the add command to add any new or
modified files to the index.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

o This command can be performed multiple times before a commit. It only adds the content of the
specified file(s) at the time the add command is run; if you want subsequent changes included in
the next commit, then you must run git add again to add the new content to the index.
o The git status command can be used to obtain a summary of which files have changes that are
staged for the next commit.
o The git add command will not add ignored files by default. If any ignored files were explicitly
specified on the command line, git add will fail with a list of ignored files. Ignored files reached
by directory recursion or filename globbing performed by Git (quote your globs before the shell)
will be silently ignored. The git add command can be used to add ignored files with the -f (force)
option.
o Please see git-commit for alternative ways to add content to a commit.

Screenshot
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

4) Git diff Description:

o Git diff is a command-line utility. It's a multiuse Git command. When it is executed,
it runs a diff function on Git data sources. These data sources can be files, branches,
commits, and more. It is used to show changes between commits, commit, and
working tree, etc.

o It compares the different versions of data sources. The version control system stands
for working with a modified version of files. So, the diff command is a useful tool for
working with Git.

o However, we can also track the changes with the help of git log command with option
-p. The git log command will also work as a git diff command.

Screenshot:

5) Git Commit Description:


o Create a new commit containing the current contents of the index and the given log message
describing the changes. The new commit is a direct child of HEAD, usually the tip of the
current branch, and the branch is updated to point to it (unless no branch is associated with
the working tree, in which case HEAD is "detached" as described in git-checkout).
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

o The content to be committed can be specified in several ways:


o by using git-add to incrementally "add" changes to the index before using
the commit command (Note: even modified files must be "added");
o by using git-rm to remove files from the working tree and the index, again before using
the commit command.
o by listing files as arguments to the commit command (without --interactive or --patch switch),
in which case the commit will ignore changes staged in the index, and instead record the
current content of the listed files (which must already be known to Git);
o by using the -a switch with the commit command to automatically "add" changes from all
known files (i.e., all files that are already listed in the index) and to automatically "rm" files
in the index that have been removed from the working tree, and then perform the actual
commit.
o by using the --interactive or --patch switches with the commit command to decide one by one
which files or hunks should be part of the commit in addition to contents in the index, before
finalizing the operation. See the “Interactive Mode” section of git-add to learn how to operate
these modes.
o The --dry-run option can be used to obtain a summary of what is included by any of the
above for the next commit by giving the same set of parameters (options and paths).
o If you make a commit and then find a mistake immediately after that, you can recover from it
with git reset.

Screenshot:
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

6) Elaborate on Git-ignore operation:


o A  gitignore  file specifies intentionally untracked files that Git should ignore. Files already
tracked by Git are not affected; see the NOTES below for details.
o Each line in a  gitignore  file specifies a pattern. When deciding whether to ignore a path,
Git normally checks  gitignore  patterns from multiple sources, with the following order of
precedence, from highest to lowest (within one level of precedence, the last matching
pattern decides the outcome):
 Patterns read from the command line for those commands that support them.
 Patterns read from a  .gitignore  file in the same directory as the path, or in any parent
directory (up to the top-level of the working tree), with patterns in the higher level
files being overridden by those in lower level files down to the directory containing
the file. These patterns match relative to the location of the  .gitignore  file. A project
normally includes such  .gitignore  files in its repository, containing patterns for files
generated as part of the project build.
 Patterns read from  $GIT_DIR/info/exclude .
 Patterns read from the file specified by the configuration variable  core.excludesFile .
o Which file to place a pattern in depends on how the pattern is meant to be used.

 Patterns which should be version-controlled and distributed to other repositories via


clone (i.e., files that all developers will want to ignore) should go into a  .gitignore  file.
 Patterns which are specific to a particular repository but which do not need to be
shared with other related repositories (e.g., auxiliary files that live inside the
repository but are specific to one user’s workflow) should go into
the  $GIT_DIR/info/exclude  file.
 Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary
files generated by the user’s editor of choice) generally go into a file specified
by  core.excludesFile  in the user’s  ~/.gitconfig . Its default value is
$XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or
empty, $HOME/.config/git/ignore is used instead.
o The underlying Git plumbing tools, such as git ls-files and git read-tree,
read  gitignore  patterns specified by command-line options, or from files specified by
command-line options. Higher-level Git tools, such as git status and git add, use patterns
from the sources specified above.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

7) Elaborate on git Push operation on remote:

o The push term refers to upload local repository content to a remote repository. Pushing is
an act of transfer commits from your local repository to a remote repository. Pushing is
capable of overwriting changes; caution should be taken when pushing.

o Moreover, we can say the push updates the remote refs with local refs. Every time you
push into the repository, it is updated with some interesting changes that you made. If we
do not specify the location of a repository, then it will push to default location at origin
master.
o The "git push" command is used to push into the repository. The push command can be
considered as a tool to transfer commits between local and remote repositories. The basic
syntax is given below:
$ git push <option> [<Remote URL><branch name><refspec>...]

Git Push Origin Master


o Git push origin master is a special command-line utility that specifies the remote branch
and directory. When you have multiple branches and directory, then this command assists
you in determining your main branch and repository.
o Generally, the term origin stands for the remote repository, and master is considered as
the main branch. So, the entire statement "git push origin master" pushed the local
content on the master branch of the remote location.
$ git push origin master
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 Conclusion: Hence we successfully implemented GIT operations.

EXPEREMENT NO: 05
AIM: Develop Software Requirement Specification (SRS) document in
IEEE format for the project.

Software Requirements
Specification
for

FOOD BAAZAR - Food Ordering System

Version 1.0 approved.

Prepared by <author>

<organization>

<date created>
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Table of Contents
Table of Contents...........................................................................................................................ii
Revision History.............................................................................................................................ii
1. Introduction..............................................................................................................................1
1.1 Purpose...........................................................................................................................................1
1.2 Document Conventions...................................................................................................................1
1.3 Intended Audience and Reading Suggestions.................................................................................1
1.4 Product Scope.................................................................................................................................1
1.5 References......................................................................................................................................1
2. Overall Description..................................................................................................................2
2.1 Product Perspective.........................................................................................................................2
2.2 Product Functions...........................................................................................................................2
2.3 User Classes and Characteristics.....................................................................................................2
2.4 Operating Environment...................................................................................................................2
2.5 Design and Implementation Constraints.........................................................................................2
2.6 User Documentation.......................................................................................................................2
2.7 Assumptions and Dependencies......................................................................................................3
3. External Interface Requirements...........................................................................................3
3.1 User Interfaces................................................................................................................................3
3.2 Software Interfaces.........................................................................................................................3
4. System Features.......................................................................................................................4
4.1 System Feature 1.............................................................................................................................4
5. Other Nonfunctional Requirements.......................................................................................4
5.1 Performance Requirements.............................................................................................................4
5.2 Security Requirements....................................................................................................................5
5.3 Software Quality Attributes............................................................................................................5

Appendix A: Glossary....................................................................................................................5
Appendix B: Analysis Models.......................................................................................................5
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 Introduction:
 Purpose (purpose of document, whether SRS is about part of the system or
whole system, what is scope, use or purpose of system to be developed)

All in One Food Ordering System is mainly designed primarily function for use in the
food delivery industry. This system will allow hotels and restaurants to increase online
food ordering such type of business. The customers can be selected food menu items in
just few minutes. In the modern food industries allows to quickly and easily delivery on
customer place. Restaurant employees then use these orders through an easy to delivery
on customer place easy find out navigate graphical interface for efficient processing.
Increased demand of restaurant-goers generated the need for much attention for the
hospitality industry. Providing much option with ease of ordering and delivering is the
need of the hours. Technological interference has become mandatory to improve the
quality of the service and business in this industry. Evidence are already existed for
partial automation of food ordering process in the country; most of these technologies
implemented are based on wireless technologies. This manuscript reports implementation
and integration of web-based technology for restaurants. A dynamic database utility
system was designed to fetch all the information from a centralized database. User utility
was given importance during the development of this interface and efficiency, accuracy
was the priority for better results and services and to reduce most of the human error. It
was observed that this system was successful in overcoming the shortcomings found in
the previously developed similar systems. Moreover, this system was very cost effective
in development as well as during use.

 Document Conventions (what will be font, size for title, subtitle, body)

 Font-Family:
'Poppins',sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;.
Intended Audience and Reading Suggestions(optional)

 Product Scope (purpose, use, benefits of the product to be dev., its


corporate, business, social use)
• We will Work on User Login Section this section will based on User point of
view.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 References (Books, Websites)


[1]. Kirti Bhandge, Tejas Shinde, Dheeraj Ingale, Neeraj Touchpad Based Food Ordering System
Using Android Research in Computer Science Technology (IJARCST 2015).
[2]. Varsha Chavan, Priya Jadhav,Snehal Korade,Priyanka Journal of Innovative Science,
Engineering Technology (IJISET) 2015.
[3]. Resham Shinde, Priyanka Thakare, Neha Dhomne, Journal of Advance Research in
Computer Science and Management Studies 2014.
[4]. Ashutosh Bhargave, Niranjan Jadhav, Apurva Joshi,
[5]. Khairunnisa K., Ayob J., Mohd. Helmy A. Wahab, M. Application of Wireless Food
Ordering System” MASAUM Journal of Computing 2009.
[6]. Noor Azah Samsudin, Shamsul Kamal Ahmad Khalid, system with real time customer
feedback”, IEEE Symposium on Wireless Technology and Applications(ISWTA) 2011.
[7]. Serhat Murat Alagoza, Haluk Hekimoglub,” A study on tam: analysis of customer attitudes in
online food
[8]. Patel Krishna, Patel Palak, Raj Nirali, Patel Lalit,” of Engineering Research and
Development (IJERD) 2015.
[9]. Mayur D. Jakhete, Piyush C. Mankar,” Implementation of Smart Restaurant with e-menu
Card,” International Journal of Computer Applications 2015 of Smart Restaurant with e-menu
Card, ”International Journal of Computer Applications 2015.

Overall Description
 Product Perspective (High level Use case diagram ,broad level diagram)
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 Product Functions (Login, Add to cart, and some basic Functions)


1. LOGIN :-
a) ADMIN Login:
Admin Login module. Admin Login the admin is allowed to access of Add
new item’s part, Admin can add new Items to the Web-Application and that
all food items are Stored into Database, the admin have to choose the
Category of Food to be Uploaded.

b) USER Login:
The user Login of proposed system, the user has to login into Application
which will secure the progress of user after that the home page of Web-
application is display in that Then the User has the menu items in which the
user can select the FOOD from different Categories, Users can add Food
items to the Cart then Users can Order all the Items in the Cart.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 User Classes and Characteristics (user wise functions)


1. ADD TO CART: -
First the user has to login into Application which will secure the progress of
user after that the home page of Web-application is display in that Then the
User has the menu items in which the user can select the FOOD from different
Categories, Users can add Food items to the Cart then Users can Order all the
Items in the Cart.

2. MENU ITEMS: -
the User has the menu items in which the user can select the FOOD from
different Categories, Users can add Food items to the Cart then Users can
Order all the Items in the Cart.

3. FILTERING: -
Users can filter their food according to their requirements in menu items, then
the users can select and add the food into Cart.

 Operating Environment (OS required, browser and compatibility and


basic h/w configuration)
The browsers with known support include:

 Chrome 60+
 Safari 10.1+ / iOS Safari 10.1+
 Edge 12+
 Firefox ESR+
 Opera
If specific exports have a different browser support expectation, it will be documented
with that export.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 Design and Implementation Constraints

 User Documentation (user manuals, online help any available mention


it)
1. REACT DOCUMENTION:- https://reactjs.org/docs/getting-started.html

2. TAILWIND CSS DOCUMENTION:- https://v2.tailwindcss.com/docs

3. REDUX DOCUMENTION :- https://redux.js.org/

 Assumptions and Dependencies (how the system should be, performance


expectations, username n pwd, internet connection)
• This system will allow hotels and restaurants to increase online food ordering
such type of business.
• The customers can be selected food menu items just few minutes. Also This
project Provide Groceries to Menu List.
• So, Customers Can Buy Any Type of Food Like (Groceries, Cooked , Non-
Cooked) FOOD.
• An Online Food Ordering System is proposed here which simplifies the food
ordering process.
• The proposed system shows a user interface and update the menu with all
available options so that it eases the customer work.
• Customer can choose more than one item to make an order and can view order
details before logging off.
• The order confirmation is sent to the customer. The order is placed in the queue
and updated in the database and returned in real time.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

External Interface Requirements


 User Interfaces (how the UI should be, the screen with their features)
• First the user has to login into Application which will secure the progress of user
after that the home page of Web-application is display in that Then the User has
the menu items in which the user can select the FOOD from different Categories,
Users can add Food items to the Cart then Users can Order all the Items in the
Cart.
• If There is Admin Login the admin is allowed to access of Add new item’s part,
Admin can add new Items to the Web-Application and that all food items are
Stored into Database, the admin have to choose the Category of Food to be
Uploaded, by this the Normal users can select their food according to their
category.
 Software Interfaces
This subsection will provide the versions of software applications that must be
installed. The software requirements are listed in Table.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

System Features
 System Feature 1
4.1.1 Description and Priority (Features)
ADD TO CART: -
First the user has to login into Application which will secure the progress of
user after that the home page of Web-application is display in that Then the
User has the menu items in which the user can select the FOOD from different
Categories, Users can add Food items to the Cart then Users can Order all the
Items in the Cart.

4.1.2 Stimulus/Response Sequences (Notification, Dialog Box for


every feature like password and requirement)
• Error while uploading : Try Again 🙇
• Image uploaded successfully 😊
• Image deleted successfully 😊
• Data Uploaded successfully 😊

4.1.3 Functional Requirements (Each req. should be unique)

REQ-1: Menu item

REQ-2: Filtering
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Other Nonfunctional Requirements

 Performance Requirements
 Using Immutable Data Structures. ...
 Function/Stateless Components and React. ...
 Multiple Chunk Files. ...
 Use React. ...
 Avoid Inline Function Definition in the Render Function. ...
 Throttling and Debouncing Event Action in JavaScript. ...
 Avoid using Index as Key for map.

 Security Requirements
 There are times when we just want to use an application and do not have the
patience to sign up and sign in with our email and password first. We might also
just want to try out the application and do not want the burden of having to create
a new account just for that.
 At the same time, the owners of the application need to know how many users
their application has, and will want to get feedback about who’s using the
application and how. To get these statistics, they need users to sign up with
 Authentication is the process by which your identity is confirmed through the use
of some kind of credential. Authentication is about proving that you are who you
say you are.
 Google provides many APIs and services, which require authentication to access.
Google also provides a number of services that host applications written by our
customers; these applications also need to determine the identity of their users.

 Software Quality Attributes


1. Reliability
2. Maintainability
3. Usability
4. Portability
5. Correctness
6. Efficiency
7. Integrity or Security
8. Testability
9. Flexibility
10. Reusability

Appendix A: Glossary
VS Code
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made

 by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features
include

 support for debugging, syntax highlighting, intelligent code completion, snippets, code
refactoring,

 and embedded Git. Users can change the theme, keyboard shortcuts, preferences, and

 install extensions that add additional functionality .

 In the Stack Overflow 2021 Developer Survey, Visual Studio Code was ranked the most
popular

 developer environment tool among 82,000 respondents, with 70% reporting that they use
it.

REACT JS

 React is a JavaScript library for building user interfaces. Learn what React is all about on
our homepage or in the tutorial.

 React is a JavaScript library created by Facebook

 React is a User Interface (UI) library

 React is a tool for building UI components

 React has been designed from the start for gradual adoption, and you can use as little or
as much React as you need. Whether you want to get a taste of React, add some
interactivity to a simple HTML page, or start a complex React-powered app, the links in
this section will help you get started.

REDUX

Redux itself is a standalone library that can be used with any UI layer or framework, including
React, Angular, Vue, Ember, and vanilla JS. Although Redux and React are commonly used
together, they are independent of each other.

If you are using Redux with any kind of UI framework, you will normally use a "UI binding"
library to tie Redux together with your UI framework, rather than directly interacting with the
store from your UI code. React Redux is the official Redux UI binding library for React. If you
are using Redux and React together, you should also use React Redux to bind these two libraries.

To understand why you should use React Redux, it may help to understand what a "UI binding
library" does.

o Redux does not have Dispatcher concept.


Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

o Redux has an only Store whereas Flux has many Stores.

o The Action objects will be received and handled directly by Store.

o React Redux is the official UI bindings for react Application. It is kept up to date with
any API changes to ensure that your React components behave as expected.

o It encourages good 'React' architecture.

o It implements many performance optimizations internally, which allows to components


re-render only when it actually needs.

Tailwind CSS

Tailwind CSS can be used to make websites in the fastest and the easiest way.

Tailwind CSS is basically a utility-first CSS framework for rapidly building custom user
interfaces. It is a highly customizable, low-level CSS framework that gives you all of the building
blocks you need to build bespoke designs without any annoying opinionated styles you have to
fight to override.

1. Why Tailwind CSS?

 Faster UI building process

 It is a utility-first CSS framework.

2. Advantages of Tailwind CSS:

 No more silly names for CSS classes and Id’s.

 Minimum lines of Code in CSS file.

 We can customize the designs to make the components.

 Makes the website responsive.

Makes the changes in the desired manner. CSS is global in nature and if make changes in the file
the property is changed in all the HTML files linked to it. But with the help of Tailwind CSS we
can use utility classes and make local changes.

YARN
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

o Yarn is a package manager for your code. It allows you to use and share code with other
developers from around the world. Yarn does this quickly, securely, and reliably so you
don't ever have to worry.

o Yarn allows you to use other developers' solutions to different problems, making it easier
for you to develop your software. If you have problems, you can report issues or
contribute back on GitHub, and when The problem is fixed, you can use Yarn to keep it
all up to date.

o Code is shared through something called a package. A package contains all the code
being shared as well as a package.Json file (called a manifest) which describes the
package.

FIREBASE

 Firebase is an app development platform that helps you build and grow apps and games
users love. Backed by Google and trusted by millions of businesses around the world.

 Firebase is an all-in-one backend as a service provider (BaaS) that provides a database,


authentication, and cloud storage among its many services. In this tutorial you're going
to learn how to use the Firebase Real-Time Database service in a React application

 Firebase evolved from Envolve, a prior startup founded by James Templin and Andrew
Lee in 2011. Envolve provided developers an API that enables the integration of online
chat functionality into their websites. After releasing the chat service, Templin and Lee
found that it was being used to pass application data that were not chat messages.

 Developers were using Envolve to sync application data such as game state in real time
across their users. Templin and Lee decided to separate the chat system and the real-
time architecture that powered it. They founded Firebase as a separate company in 2011
and it launched to the public in April 2012.

 Firebase's first product was the Firebase Realtime Database, an API that synchronizes
application data across

 iOS, Android, and Web devices, and stores it on Firebase's cloud. The product assists
software developers in building real-time, collaborative applications.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

Appendix B: Analysis Models (UML diagram)

 CLASS DIAGRAM: -
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 USE CASE DIAGRAM: -


Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 SEQUENCE DIAGRAM: -
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

 ACTIVITY DIAGRAM: -
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC

You might also like