SEPM Final Aman & Khemraj
SEPM Final Aman & Khemraj
SESSION-2022-23
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE AND ENGINEERING
J.K. INSTITUTE OF ENGINEERING, BILASPUR(C.G.)
SESSION-2022-23
SUBMITTED BY-
This is to certify that the project entitled “SMART QR CODE GENERATOR” is a Record
of work carried out by AMAN SAHU (BJ4309), KHEMRAJ DEWANGAN (BJ4065) under
my guidance and supervision for the award of the Degree of Bachelor of technology.
Chhattisgarh Swami Vivekanand Technical University, Bhilai (C.G.) India.
1. Embodies the work of the candidate himself, and has not been submitted of the award
of any degree.
2. Has duly completed.
3. Full fills the requirement of the Ordinance relating to the B.TECH. degree of
4. The University is up to the desire standard in respect of contents Is being referred to the
examiners.
----------------------------
(Signature of the Guide)
Mr.Vikas Dubey
(Asst. Professor of CSE
Department JKIE
Bilaspur (C.G))
RECOMMENDATION OF THE DEPARTMENT
The project work as mentioned above by being recommended and forwarded for Examination
and evaluation.
This is to certify that the project entitled “SMART QR CODE GENERATOR” Is a record of
work carried out by AMAN SAHU (BJ4309), KHEMRAJ DEWANGAN (BJ4065) under my
guidance and Supervision for the award of the Degree of Bachelor of Technology Engineering,
Chhattisgarh Swami Vivekanand Technical University, Bhilai (C.G.)
------------------------ --------------------------
Internal Examiner External
Examiner
Date: Date:
-------------------------------
Signature of Principal
Dr. D. RAMESH
Principal of J.K Institute of Engineering, Bilaspur (C.G.)
ACKNOWLEDGEMENT
At every outset I express my gratitude to almighty lord for showering his grace and blessings
upon me to complete this project.
Although my name appears on the cover of this book, many people had contributed in some
form or the other form to this project Development. I could not have done this project without
the assistance or support of each of the following I thank you all.
I wish to place on my record my deep sense of gratitude to my project guide, Mr. Vikas Dubey
sir, Lecturer, Dept. of CSE my project Incharge Mr. Vikas Dubey sir., Lecturer, Dept. of CSE
JK. Bilaspur for their constant motivation and valuable help through the project work.
Finally, I would like to thank my friends for their cooperation to complete this project.
--------------------------
Aman Sahu
Enrollment No. BJ4309
----------------------------
Khemraj Dewangan
Enrollment No. BJ4065
INDEX
S. Practical SUBMISSION
Practical NAME Page Remark/Sign
No. Date DATE
0. Introduction of SEPM 1
1|Page
Experiment No. 1
Problem Statement
Introduction: QR codes (or Quick Response codes) are two-dimensional codes that you can
scan with a smartphone. The code contains information, usually a site address, and once you
scan it, the code connects you with a resource on the web. QR codes were designed by DENSO
WAVE in Japan and first came into use in 1994. Although the term “QR code” is a registered
trademark, the technology itself has not been patented and is therefore available for anyone to
use. One key benefit of these codes for the Japanese is that they are one of the most efficient
ways of encoding Japanese characters.
• Phishing
• Malicious software
• Harmful websites
• Too small or too big
• Design color mismatch
Problem solution:
✓ Either your QR code too small no one can see it , & QR code is big , it taken over the
design hence QR code size should be at minimum 2×2 cm.
✓ The background color is same as the QR code so the QR code has faded into the design.
A scanner can't determine what is the design & what is the QR code
Abstract
This project aims to develop a QR code generator using Python programming language.
The generator will create custom QR codes with user-defined information.
It will help businesses and individuals to create custom QR codes quickly and easily,
with minimal user input.
About project
It full form Quick response it means reply quickly
2|Page
QR code is a trademark of a type of matrix bar-codes. Which was created in Japan to
recognize the automotive industry there
it is a square 2-D box, in which pictures are made on a white background.
Objective
The objective of the QR code generator project is to provide a user-friendly interface
for generating custom QR codes.
Additionally, the project aims to provide advanced features such as error correction and
data compression to ensure that the generated codes are both accurate and efficient.
Needed of QR code
Developing a code that cannot be read by the naked eye and hides our information
Due to the advantages of QR Code, it is being used in many areas. Only 30 numbers
can be hidden in BAR Code but 7089 numbers can be stored in QR Code. Due to its
high storage capacity, large files and videos can also be stored in it.
Language
Python is a popular programming language that is often used in QR
The tkinter library is a built-in Python library that provides a set of tools for creating
graphical user interfaces (GUI) in desktop applications.
Tkinter is the most commonly used method. It is a standard Python interface to the Tk
GUI toolkit shipped with Python. Python with tkinter is the fastest and easiest way to
create the GUI applications. Creating a GUI using tkinter is an easy task.
3|Page
Experiment No. 2
SRS
Introduction
1. Purpose of the document: A QR code (quick response code) is a type of two-
dimensional (2D) bar code that is used to provide easy access to online information
through the digital camera on a smartphone or tablet.
2. Scope of the system: QR Code usage has seen a further rise from 2020 to 2021. In fact,
reports suggest that one billion smartphones will have access to QR Codes by the end
of 2022. In addition, Juniper Research says that by 2022, 5.3 billion QR Codes will be
used for coupon redemption alone.
3. Definitions, acronyms, and abbreviations: A list of terms and their meanings used in
the document.
Overall Description:
• The software shall be able to authenticate users using their email address and password.
• The software shall allow users to create, edit, and delete notes in a user-friendly
interface.
• The software shall be compatible with Windows, macOS, and Linux operating systems.
• The software shall be able to export notes in various file formats, including PDF and
plain text.
• The software shall provide a search feature that allows users to find notes based on
keywords or phrases.
Software Requirements:
You can easily create high-quality QR codes with your own logo, text and background color.
The software has been designed to be as user-friendly as possible so that anyone can use it
easily.
Web browser UI (HTML, CSS, JavaScript)
• Rails (Model, View, Controller)
• Event Machine (an interface from events -> actions)
• HTTP routes
• JSON data transfer
• AJAX (passing requests over AJAX)
• MongoDB (through queries)
• QR Code - a Ruby library for generating QR codes
4|Page
Experiment No. 3
ER Diagram
o It develops a conceptual design for the database. It also develops a very simple and easy
to design view of data.
For example, suppose we design a school database. In this database, the student will be an
entity with attributes like address, name, id, age, etc. The address can be another entity with
attributes like city, street name, pin code, etc and there will be a relationship between them.
Component of ER Diagram
5|Page
1. Entity:
An entity may be any object, class, person or place. In the ER diagram, an entity can be represented
as rectangles.
Consider an organization as an example- manager, product, employee, department etc. can be taken
as an entity.
a. Weak Entity
An entity that depends on another entity called a weak entity. The weak entity doesn't contain any
key attribute of its own. The weak entity is represented by a double rectangle.
2. Attribute
The attribute is used to describe the property of an entity. Eclipse is used to represent an attribute.
For example, id, age, contact number, name, etc. can be attributes of a student.
6|Page
a. Key Attribute
The key attribute is used to represent the main characteristics of an entity. It represents a primary
key. The key attribute is represented by an ellipse with the text underlined.
b. Composite Attribute
An attribute that composed of many other attributes is known as a composite attribute. The
composite attribute is represented by an ellipse, and those ellipses are connected with an ellipse.
c. Multivalued Attribute
An attribute can have more than one value. These attributes are known as a multivalued attribute.
The double oval is used to represent multivalued attribute.
For example, a student can have more than one phone number.
7|Page
d. Derived Attribute
An attribute that can be derived from other attribute is known as a derived attribute. It can be
represented by a dashed ellipse.
For example, A person's age changes over time and can be derived from another attribute like
Date of birth.
AD
3. Relationship
A relationship is used to describe the relation between entities. Diamond or rhombus is used to
represent the relationship.
a. One-to-One Relationship
When only one instance of an entity is associated with the relationship, then it is known as one to
one relationship.
8|Page
For example, A female can marry to one male, and a male can marry to one female.
b. One-to-many relationship
When only one instance of the entity on the left, and more than one instance of an entity on the
right associates with the relationship then this is known as a one-to-many relationship.
For example, Scientist can invent many inventions, but the invention is done by the only specific
scientist.
c. Many-to-one relationship
When more than one instance of the entity on the left, and only one instance of an entity on the
right associates with the relationship then it is known as a many-to-one relationship.
For example, Student enrolls for only one course, but a course can have many students.
d. Many-to-many relationship
When more than one instance of the entity on the left, and more than one instance of an entity on
the right associates with the relationship then it is known as a many-to-many relationship.
9|Page
For example, Employee can assign by many projects and project can have many employees.
Fig. ER Diagram
1. QR Code Type: This entity stores information about the type of QR code being
generated. For example, URL, text, email, phone number, etc.
2. QR Code Data: This entity stores the actual data that needs to be encoded in the QR
code, depending on the selected QR code type.
3. Error Correction: This entity stores the level of error correction selected by the user
while generating the QR code.
10 | P a g e
4. QR Code Image Storage Table: This entity stores the generated QR code image and its
associated metadata, such as creation time and user ID.
5. QR Code Generator: This entity represents the QR code generator application, which
creates the QR code image using the input data and saves it to the storage table.
Note: This is just an example ER diagram, and the actual schema may vary depending on
the specific implementation of the QR code generator.
11 | P a g e
Experiment No. 4
DFD
In Software engineering DFD (data flow diagram) can be drawn to represent the system of
different levels of abstraction. Higher-level DFDs are partitioned into low levels-hacking more
information and functional elements. Levels in DFD are numbered 0, 1, 2 or beyond. Here, we
will see mainly 3 levels in the data flow diagram, which are: 0-level DFD, 1-level DFD, and 2-
level DFD.
0-level DFD:
It is also known as a context diagram. It’s designed to be an abstraction view, showing the
system as a single process with its relationship to external entities. It represents the entire system
as a single bubble with input and output data indicated by incoming/outgoing arrows.
1-level DFD:
In 1-level DFD, the context diagram is decomposed into multiple bubbles/processes. In this level,
we highlight the main functions of the system and breakdown the high-level process of 0-level
DFD into sub processes.
12 | P a g e
Fig. Level 1 DFD
2-level DFD:
2-level DFD goes one step deeper into parts of 1-level DFD. It can be used to plan or record the
specific/necessary detail about the system’s functioning.
13 | P a g e
Experiment No. 5
Introduction: A use case diagram is a type of UML (Unified Modeling Language) diagram that
is used to visualize the interactions between a system and its users or other external entities.
UML: Unified Modeling Language
It is a graphical language that allows developers, architects, and other stakeholders to
visually represent the different aspects of a software system, including its structure,
behavior, and interactions.
Structure:
In a use case diagram, the system is represented as a rectangle, and the actors are represented
as stick figures. The use cases are represented as ovals or ellipses, with lines connecting the
actors to the use cases to show the interactions between them.
Advantage of using Use Case Diagram:
• Use case diagrams are useful for capturing the functional requirements of a system and
for communicating those requirements to stakeholders and development teams.
• Use case diagrams can be used in the early stages of software development to help
identify the functional requirements of the system, as well as during the testing phase
to ensure that the system meets those requirements.
14 | P a g e
Use case diagram for a QR code generator:
15 | P a g e
Explanation of the diagram:
1. Generate QR Code: This use case represents the main functionality of the QR code generator.
It takes input parameters such as QR code type, size, error correction level, and data, and generates
a QR code accordingly.
2. Select QR Code Type: This use case allows the user to select the type of QR code they want to
generate. For example, they can choose from various QR code types such as URL, text, email,
phone number, etc.
3. Set Size: This use case enables the user to specify the size or dimensions of the QR code they
want to generate. They may choose a small, medium, or large size based on their requirements.
4. Set Error Correction: This use case allows the user to set the error correction level for the
generated QR code. Error correction helps in preserving the QR code's readability even if it is
partially damaged or distorted.
5. Set QR Code Data: This use case involves the user entering the actual data that needs to be
encoded in the QR code. It can be a URL, text, contact information, or any other relevant
information depending on the selected QR code type.
6. Save: This use case represents the option to save the generated QR code to a file or storage
location.
7. Display QR Code: This use case shows the QR code visually to the user, allowing them to view
the generated QR code on a screen or display device.
16 | P a g e
Experiment No. 6
Draw Activity Diagram of all use cases
• Identify all the use cases of the system: The first step is to identify all the use cases of the
system or application being modeled. This can be done through requirements gathering and
analysis.
• Create an activity diagram for each use case: For each use case, create an activity diagram
that shows the sequence of activities or steps that occur in that use case. The activities can
be represented as nodes, with the transitions between them represented as arrows.
• Identify the actors: Identify the actors that interact with the system in each use case, and
include them in the activity diagram. The actors can be represented as swimlanes.
• Add decision points and conditions: Add decision points and conditions to the activity
diagram to show different paths or outcomes that may occur in the use case.
• Validate the activity diagrams: Validate the activity diagrams to ensure that they accurately
represent the steps and flow of activities in each use case. This can be done through reviews
and walkthroughs with stakeholders.
• Use the activity diagrams for implementation: Once the activity diagrams have been
validated, they can be used as a basis for implementation. They provide a visual
representation of the steps that need to be taken to implement each use case.
Activity diagrams can be used to create a visual representation of the flow of activities in
each use case.
17 | P a g e
Activity Case Diagram:
Automatic Number Plate Recognition (ANPR) is an internationally recognized methodology that
is used in vehicle identification. ANPR systems allow for real time recognition of a vehicle's
number plate. Vehicle parking is an important component within any transportation system,
whereby vehicles are often parked at destinations. The Activity diagram is defined as the flow of
processing.
Genereate QR
Start QR Code User Input Data Encode data Display QR Code End QR Code
Code
18 | P a g e
Experiment No. 7
Draw state chart diagram of all use cases
Introduction: A state chart diagram is a type of UML (Unified Modeling Language) diagram
that shows the various states that an object can be in, and the transitions between those states.
State chart diagrams are used to model the behavior of an object over time and in response to
events.
Structure:
In a state chart diagram, each state is represented by a rectangle with the name of the state inside
it. The transitions between states are represented by arrows with labels that indicate the events
or stimuli that trigger the transition. The conditions that must be met for a transition to occur
may also be included in the label.
Used for:
• State chart diagrams can be used to model the behavior of any object that has a complex or
changing state. Examples include software systems, mechanical systems, and biological
systems. State chart diagrams are particularly useful for modeling systems that have a large
number of possible states or complex transitions between states.
• State chart diagrams can be used in the design and implementation of systems, as well as in
the testing and maintenance of existing systems. They are a useful tool for communicating
the behavior of a system to stakeholders, and for identifying potential issues or areas for
improvement in the system.
19 | P a g e
Initial
State
Input
Data
Encoding
Error
correction
Generate
QR Code
Display
End State
20 | P a g e
Experiment No. 8
Sequence diagram of all use cases
Introduction: A use case diagram is a type of UML (Unified Modeling Language) diagram that
is used to visualize the interactions between a system and its users or other external entities.
This sequence diagram depicts the high-level flow of the ANPR system's use cases, but the
actual implementation may be more complex and involve additional steps or interactions.
Structure:
Here's a brief description of each step:
1. User Input: The user provides input to the QR code generator system, typically in the
form of data that they want to encode into a QR code. This could be a URL, text, contact
information, or any other relevant data.
2. QR Code Generation Request: The user's input is sent to the QR code generator
component, which receives the request to generate a QR code. The generator component
is responsible for creating the QR code based on the provided data.
3. QR Code Generation: The QR code generator component utilizes a QR code library
or algorithm to create the QR code. It processes the input data, encodes it into the QR
code format, and generates the QR code image.
4. QR Code Retrieval: Once the QR code is generated, it is retrieved from the generator
component. The QR code can be in the form of an image file or a data structure that
represents the QR code.
5. QR Code Display: The generated QR code is then displayed to the user. This can be
done through a user interface, where the QR code image is shown on the screen for the
user to view and use.
6. Save QR Code (optional): If the user wants to save the generated QR code for future
use or distribution, they can request to save it. The QR code generator system then saves
the QR code, typically in a database or storage system, for later retrieval.
21 | P a g e
Case Diagram:
Here is a sequence diagram for the Smart QR Code Generator, depicting all of its use cases.
22 | P a g e
Experiment No. 9
Collaboration diagram of all use cases
Introduction: A use case diagram is a type of UML (Unified Modeling Language) diagram that
is used to visualize the interactions between a system and its users or other external entities.
A collaboration diagram, also known as a communication diagram, is a type of diagram in
the Unified Modeling Language (UML) that shows the interactions between objects or actors
in a system to achieve specific use cases.
Structure:
As an AI language model, I do not have access to your specific use cases or requirements.
However, I can provide a general guide on how to draw a collaboration diagram for use cases:
1. Identify the actors: Start by identifying all the actors who interact with the system and
participate in the use cases. Actors are usually people or other systems that interact with
the system you are designing. List them down.
2. Identify the use cases: Identify all the use cases that you have defined for the system.
Each use case represents a specific interaction between an actor and the system.
3. Create the collaboration diagram: Draw a diagram that shows the actors and the use
cases they participate in. Use arrows to indicate the direction of communication between
the actors and the system. You can also label the arrows to show the messages being
exchanged.
4. Refine the diagram: Refine the diagram by adding details such as the attributes and
methods used by each object, the specific messages being exchanged, and any
conditions or exceptions that occur during the use cases.
5. Validate the diagram: Validate the diagram with stakeholders to ensure that it accurately
represents the system and its interactions.
23 | P a g e
Case Diagram:
Location to
Name of QR
Input Text/URL Save QR Code
Code
Generate QR Size of QR
Code Code
24 | P a g e
Experiment No. 10
Assigning objects in sequence diagram to classes and make class diagram
Introduction: A use case diagram is a type of UML (Unified Modeling Language) diagram that
is used to visualize the interactions between a system and its users or other external entities.
A collaboration diagram, also known as a communication diagram, is a type of diagram in
the Unified Modeling Language (UML) that shows the interactions between objects or actors
in a system to achieve specific use cases.
Structure:
As an AI language model, I do not have access to your specific use cases or requirements.
However, I can provide a general guide on how to draw a collaboration diagram for use cases:
6. Identify the actors: Start by identifying all the actors who interact with the system and
participate in the use cases. Actors are usually people or other systems that interact with
the system you are designing. List them down.
7. Identify the use cases: Identify all the use cases that you have defined for the system.
Each use case represents a specific interaction between an actor and the system.
8. Create the collaboration diagram: Draw a diagram that shows the actors and the use
cases they participate in. Use arrows to indicate the direction of communication between
the actors and the system. You can also label the arrows to show the messages being
exchanged.
9. Refine the diagram: Refine the diagram by adding details such as the attributes and
methods used by each object, the specific messages being exchanged, and any
conditions or exceptions that occur during the use cases.
10. Validate the diagram: Validate the diagram with stakeholders to ensure that it accurately
represents the system and its interactions.
25 | P a g e
Case Diagram:
26 | P a g e
Experiment No. 11
Performing system analysis on any of the selected modules designed above.
Performing a system analysis on the "QR Code Generator" module designed. System analysis
involves understanding the module's requirements, functionality, and its interaction with other
components.
1. Module Overview:
The "QR Code Generator" module is responsible for generating QR codes based on
the provided data. It interacts with the "QR Code Library" module for the actual
generation of QR codes and may also interact with the "Database" module for
saving and retrieving QR codes.
2. Functionality: The main functionalities of the "QR Code Generator" module include:
• `generateQRCode()`: This function generates a QR code based on the provided
data. It utilizes the functionality provided by the "QR Code Library" module to
generate the QR code and returns the generated QR code as a string.
• `saveQRCode()`: If the "Database" module is available, this function saves the
generated QR code in the database.
• `editQRCode()`: This function allows for editing the data associated with a QR
code. If the "Database" module is available, it may update the corresponding entry
in the database.
• `deleteQRCode()`: This function deletes a QR code. If the "Database" module is
available, it removes the corresponding entry from the database.
3. Interactions:
• The "QR Code Generator" module interacts with the "QR Code Library" module for
the actual generation of QR codes. It utilizes the functionality provided by the "QR
Code Library" module to generate the QR code based on the provided data.
• If the "Database" module is available, the "QR Code Generator" module interacts
with it to save, retrieve, update, or delete QR codes. This allows for persistent
storage and management of generated QR codes.
4. Dependencies:
• The "QR Code Generator" module depends on the "QR Code Library" module for
the core functionality of generating QR codes.
• The "QR Code Generator" module may optionally depend on the "Database"
module for saving, retrieving, updating, or deleting QR codes.
By performing system analysis, we have gained insights into the requirements and functionality
of the "QR Code Generator" module. This analysis helps in understanding how the module fits
into the larger system and identifies its dependencies and interactions with other components.
27 | P a g e