0% found this document useful (0 votes)
78 views37 pages

Partha Internship Report Done

The document discusses an internship report submitted by Parthasarathi J N at K-AKA Technology Services. It describes the company and its services in software development, training, and SaaS. It outlines the software development department and the existing and proposed exam application system developed during the internship.

Uploaded by

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

Partha Internship Report Done

The document discusses an internship report submitted by Parthasarathi J N at K-AKA Technology Services. It describes the company and its services in software development, training, and SaaS. It outlines the software development department and the existing and proposed exam application system developed during the internship.

Uploaded by

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

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

“JNANA SANGAMA” , BELAGAVI-590018, KARNATAKA

Internship Report
On
S

“Exam Application using Python”


Submitted in the partial fulfillment of the requirement for the award of degree of

BACHELOR OF ENGINEERING
In
COMPUTER SCIENCE AND ENGINEERING

Submitted By

PARTHASARATHI J N 1VA19CS035

Under the Guidance of


Prof. Salma Itagi
Assistant Professor
Dept of CS&E

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SAI VIDYA INSTITUTE OF TECHNOLOGY
(Affiliated to Visvesvaraya Technological University, Belagavi | Recognized by Govt. of Karnataka | Approved by AICTE, New Delhi)
Accredited by NBA, New Delhi (CSE, ISE, ECE, MECH, CIVIL), NAAC "A" GRADE

RAJANUKUNTE, BENGALURU – 560 064


2022-23
S
SAI VIDYA INSTITUTE OF TECHNOLOGY
(Affiliated to Visvesvaraya Technological University, Belagavi | Recognized by Govt. of Karnataka | Approved by AICTE, New Delhi)
Accredited by NBA, New Delhi (CSE, ISE, ECE, MECH, CIVIL) , NAAC "A" GRADE
Rajanukunte, Bengaluru- 560 064

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CERTIFICATE

Certified that the Internship work entitled “Exam Application using Python”
carried out at “K-AKA Technology, Bangalore” by Mr. Parthasarathi J N
(1VA19CS035), a bonafide student of SAI VIDYA INSTITUTE OF TECHNOLOGY,
Bengaluru, in partial fulfillment for the award of Bachelor of Engineering in Computer
Science and Engineering of VISVESVARAYA TECHNOLOGICAL UNIVERSITY,
Belagavi during the year 2022-23. It is certified that all corrections/suggestions indicated
for Internal Assessment have been incorporated in the Report deposited in the
departmental library. The Internship report has been approved as it satisfies the academic
requirements in respect of Internship prescribed for the said Degree.

Prof. Salma Itagi Dr. Shantakumar B Patil Dr. M S Ganesha Prasad


Assistant Professor, Professor & HOD, Principal,
Dept. of CS&E, SVIT Dept. of CS&E, SVIT SVIT

Internship Marks Allotment


Report (25) Seminar/Presentation Total (50) Signature of Guide
(25)

External Viva:

Name Signature

1. ___________________________ __________________________

2. ___________________________ __________________________
ACKNOWLEDGEMENT

The completion of internship brings with and sense of satisfaction, but it is never
completed without thanking the persons who are all responsible for its successful
completion. First and foremost, I wish to express our deep sincere feelings of gratitude to
my Institution, Sai Vidya Institute of Technology, for providing mean opportunity to do
our education.

I would like to thank the Management and Prof. M R Holla, Director, Sai Vidya
Institute of Technology for providing the facilities.

I extend my deep sense of sincere gratitude to Dr. M S Ganesha Prasad,


Principal, Sai Vidya Institute of Technology, Bengaluru, for having permitted to carry out
the internship work on “Exam Application using Python” successfully.

I am thankful to Prof. A M Padma Reddy, Additional Director and Professor,


Department of Computer Science and Engineering, Sai Vidya Institute of Technology, for
his constant support and motivation.

I express my heartfelt sincere gratitude to Dr. Shantakumar B Patil, Professor &


HOD, Department of Computer Science and Engineering, Sai Vidya Institute of
Technology, Bengaluru, for his valuable suggestions and support.

I express my sincere gratitude to Prof. Salma Itagi, Assistant Professor,


Department of CSE, Sai Vidya Institute of Technology, Bengaluru, for her constant
support in completing the Internship.

I am thankful to “K-AKA Technology Services” for providing me an opportunity


to be an internee.

I express my sincere thanks to my external guide “Mr. Abhinav Kumar Abhay”


Head, for his constant support.

Finally, I would like to thank all the Teaching, Technical faculty and supporting
staff members of Department of Computer Science and Engineering, Sai Vidya Institute
of Technology, Bengaluru, for their support.

Parthasarathi J N 1VA19CS035

I
ABSTRACT

This report is a culmination of my successful completion of an internship program


at K-AKA Technology Services, under the development department, as a requirement for
my BE program in the Department of Computer Science and Engineering, VTU
University. As a novice in the practical, corporate world setting, my time spent at K-AKA
Technology Services was invaluable and contributed significantly to my professional
growth.

The report is divided into seven chapters. Chapter One provides a comprehensive
overview of K-AKA Technology Services and its various domains. Chapter Two offers
an in-depth description of the development department and its services within the
organization. Chapter Three examines the existing systems and the newly proposed
system that was implemented. Chapter Four outlines the system requirements
specification. Chapter Five presents the system design and the flow of information for the
project. Chapter Six discusses the implementation of the system. Finally, Chapter Seven
concludes the report.

My participation in the internship program at K-AKA Technology Services


broadened my knowledge base and enriched my experience in various ways. This was
facilitated by my engagement in diverse tasks and interactions with colleagues throughout
the organization. Overall, the opportunity for professional development has been
exceptional, and I am grateful for the wonderful experience at K-AKA Technology
Services.

II
Table of Contents

ACKNOWLEDGEMENT .................................................................................................I
ABSTRACT ...................................................................................................................... II
TABLE OF CONTENTS .................................................................................................III
LIST OF FIGURES .......................................................................................................... V

CHAPTER 1
ABOUT THE COMPANY ................................................................................................ 1
1.1 Introduction .................................................................................................................... 1
1.2 Services .......................................................................................................................... 1
1.2.1 SaaS ..................................................................................................................... 2
1.2.2 Training and Development .................................................................................. 2
1.2.2.1 Technical Training .................................................................................. 2
1.2.2.2 Certification Courses ................................................................................ 2
1.2.3 Software Development Training Program .......................................................... 3
1.2.3.1 Enterprise Application Services ............................................................... 3
1.2.3.2 Web Designing and Development ........................................................... 3
1.2.3.3 Mobile Application Development ............................................................ 4
1.3 Team ............................................................................................................................... 4
1.4 Company Client ............................................................................................................. 4

CHAPTER 2
ABOUT THE DEPARTMENT......................................................................................... 5
2.1 Software Development Department ............................................................................... 5
2.2 Duties ............................................................................................................................. 5
2.3 Process Structure ............................................................................................................ 6

CHAPTER 3
INTRODUCTION .............................................................................................................. 8
3.1 Existing System.............................................................................................................. 8
3.2 Proposed System ............................................................................................................ 9

III
CHAPTER 4
REQUIREMENT SPECIFICATION ............................................................................ 11
4.1 Software Requirements ................................................................................................ 11
4.2 Hardware Requirements ............................................................................................... 11
4.3 Functional Requirements ............................................................................................. 11
4.4 Non-Functional Requirements ..................................................................................... 13

CHAPTER 5
SYSTEM DESIGN ........................................................................................................... 14
5.1 Basic Block Diagram ................................................................................................... 14
5.2 Deployment Diagram ................................................................................................... 15
5.3 Flow Chart .................................................................................................................... 16
5.4 Sequence Diagram ....................................................................................................... 17

CHAPTER 6
IMPLEMENTATION ..................................................................................................... 18
6.1 Implementation ............................................................................................................ 18

CHAPTER 7
CONCLUSION ................................................................................................................ 24
7.1 Conclusion ................................................................................................................... 24

CHAPTER 8
SNAPSHOTS .................................................................................................................... 25

CHAPTER 9
REFERENCES ................................................................................................................ 30

IV
List of Figures

Figure 2.1 Process Structure 6


Figure 5.1 Basic Block Diagram of Data Flow 14
Figure 5.2 Deployment Diagram 15
Figure 5.3 Flow Chart 16
Figure 5.4 Sequence Diagram 17
Figure 8.1 Application Start Window 25
Figure 8.2 Register User Page 25
Figure 8.3 Register User Page after Uploading Photo 26
Figure 8.4 Security Questions Page 26
Figure 8.5 Login Page Window 26
Figure 8.6 Profile Window 27
Figure 8.7 Update Profile Window 27
Figure 8.8 MCQ Test Screen 27
Figure 8.9 SBQ Information Screen 28
Figure 8.10 SBQ Test Screen 28
Figure 8.11 SBQ Submit Test Screen 29
Figure 8.12 Test Score Displayed on Screen 29

V
Exam Application using Python

CHAPTER 1
ABOUT THE COMPANY

1.1 Introduction
KTS (K-AKA Technology Services) is a fast and dynamic software company
founded in 2020 in the Silicon Valley of India at Bangalore with the vision of providing the
best services, Training to clients and students. It is a certified software company by the
government of India. (Reg.no: KR-03-0010654). Our clients are remarkably diverse: large
and small, private, and public, for-profit, and nonprofit. We help them grow, sustain, and
transform. Our one of the technical teams from multiple MNC companies bind together to
help the students to learn technical concepts at the best level.

K-AKA Technology Services an ISO 9001: 2015 Certified company (Accredited by


International Accreditation Services: IAS). The company is highly specialized in the design
and development of the website, software application development, mobile application
development, E-Commerce solution, and more.

Vision

To become the world’s leading Innovative training provider, IT service provider,


providing Software Development solutions across the globe.

Mission

Design, Deliver Affordable and Quality training By identifying and Developing


World Class Learning Platforms and ensure the best quality product and profitable growth
through customer service, innovation, and commitment.

1.2 Services

K-AKA Technology Service offers the services in the following areas:

• SaaS (Software as a service)


• Training and Development
• Software Development.

Dept. of CSE, SVIT, Bengaluru 2022-2023 1


Exam Application using Python

1.2.1 SaaS (Software as a Service):

Digitalization in the current world makes small-large business partners manage the
work globally at distance. We provide software support to
company/organization/government-Non-Government Institute. The support includes web,
android, iOS platform, need(s) oriented application, etc.

1.2.2 Training and Development:

Looking at the progress in the corporate world, engineering aspirants of all branches
must have coding, application development skills. These skills are looked at by many
recruiting companies as a usual parameter irrespective of any branches.

Thus, we organize a workshop, training, internship across engineering/non-


engineering colleges which remarkably diverse: Large duration and small duration program.
We make our students experts in the selected domain to the best extent and compete with
the corporate world.

1.2.2.1 Technical Training:

We Provide Technical training to engineering/non-engineering students across the college.


We trained 200+ students on multiple technical domains from multiple colleges across
Karnataka India. Some of the college Includes:

• BGS Institute of Technology, Chikkaballapur Karnataka


• SJC Institute of Technology, Mandya Karnataka
• APS College of Engineering, Bangalore Karnataka
• Dayanand Sagar academy of technology and management, Bangalore Karnataka

And many more.

1.2.2.2 Certification Courses:

We provide certification courses post-training on multiple domains, Certification


course training is provided on the college campus.

Dept. of CSE, SVIT, Bengaluru 2022-2023 2


Exam Application using Python

We have tied up with multiple colleges for the certification program. Recently a
project was completed at Mysore Campus.

1.2.2.3 Software development Training Program:

Looking at the diversity of the corporate world, need of improvement in practical


knowledge of the student. We have designed a program, in which we focus on the
implementation of the gained knowledge by students after training to develop the real-world
application.

1.2.3 Software Development

We mainly focus on the following areas of software development:

• Enterprise Application Services


• Web designing and Development
• Mobile Application development

1.2.3.1 Enterprise Application Services

An enterprise application is a software system platform designed to operate in


corporate environments such as a business or government. EA software services include
computerized billing system, IT service Management, application Integration.

1.2.3.2 Web designing and development

The web development process includes web design, web content development, client-
side/server-side scripting, and network security configuration, among other tasks. Web
development range from creating pain text page to a complex web-based application, social
network applications, and electronic business applications.

The web application hierarchy is as follows;

• Client-side coding
• Server-side coding
• Database technology

Dept. of CSE, SVIT, Bengaluru 2022-2023 3


Exam Application using Python

1.2.3.3. Mobile Application development

A mobile application, often called an app, is a type of application software designed


to run on a mobile device, such as a smartphone or tablet computer. Mobile applications
frequently serve to provide users with similar services to those accessed on PCs. Apps are
generally small, individual software units with limited function.

1.3 Team

K-AKA Technology Services is a team of experienced professionals providing a


wide range of complex software and web application development services. Te professional
with vast experience who are working in MNC, IT Industry, Multiple technologies.

Our technical team focused on providing the best training to the engineers to land
into the corporate world. The company started with the vision of adding value in the
private/public, small/large organization with the service to the best extent. The company
tied with multiple colleges across Karnataka to organize the certification courses and the
corporate technical training to help the student to fill the bridge between the corporate and
the college.

1.4 Company Client

Our clients are remarkably diverse: large and small, private and public, for-profit, and
nonprofit. Some of our Happy clients are.

• Sai Vidya Institute of Technology


• Cresta
• IPC

Dept. of CSE, SVIT, Bengaluru 2022-2023 4


Exam Application using Python

CHAPTER 2
ABOUT THE DEPARTMENT
K-AKA Technology Services provided an internship in the department of software
development and I have undergone the internship as Learning and designing the software.
The objective was to derive multiple logic for the typical real-time challenges faced every
day by a Software Engineer.

2.1 Software Development Department

The software development Process organizes practical procedures and approaches


in application development. K-AKA Technology Service wants to streamline their internal
departments and functions, operations, sale and project management, etc. and want to take
the advantage of a web-based application, flexibility by moving away from the traditional
desktop application platform to the web application platform and want to gain more client
for better services their current clients offering convenient services and solutions online to
build a new web application to offer innovative services or solutions to online user and
business.

2.2 Duties

Software Developers typically do the following:

• Explore fundamental issues in computing and develop theories and models to


address those issues.
• Help scientists and engineers solve complex computing problems.
• Invent new computing languages, tools, and methods to improve how people work
with computers.
• Develop and improve the software systems that form the basis of the modern
computing experience.
• Design experiments to test the operation of these software systems.
• Analyse the results of their experiments.
• Publish their findings in academic journal.

Dept. of CSE, SVIT, Bengaluru 2022-2023 5


Exam Application using Python

2.3 Process Structure

The following figure and list of procedures and documents provide a good outline for
Lifecycle and Process:

Figure 2.1 Process Structure

1. Challenging Problem: software developers improve computer algorithms, which are


sets of instructions that tell a computer what to do. Some computer tasks are very difficult
and require complex algorithms. They try to simplify these algorithms to make computer
systems as efficient as possible. These algorithms allow advancements in many types of
technology, such as machine learning systems and cloud computing.

2. In-depth Theory Session and Deriving Multiple Logics: The work often leads to
technological advancements and efficiencies, such as better networking technology, faster
computing speeds, and improved information security, and deriving multiple logic for the
given problem statement. In general, computer and information research scientists work on
a more theoretical level than do other computer professionals.

Dept. of CSE, SVIT, Bengaluru 2022-2023 6


Exam Application using Python

3. Hands-on Practical Implementation: Computer and information research scientists


design new programming languages that are used to write software. The new languages
make software writing more efficient by improving an existing language, such as Java, or
by making a specific aspect of programming, such as image processing, easier.

4. Project work review: A Project Work Review is an exercise undertaken at the end of
each Project Phase to identify the current status of the project. The Project Review identifies
the deliverables which have been produced to date and determine whether or not the project
has met the objectives set.

5. Final Presentation and Project Release: The term release is used to define when a
project deliverable is complete and ready for delivery to the project customer, either
internally (to manufacturing or operations, for example) or to an external company or
individual.

2.3 Software Development Process

The following list of the procedures and documents provide a good outline for the
software development and process:

• Roadmap document: Defining application, process, goal, and direction


• Researching and Defining Audience scope and security documents
• Creating Functional Specification or Feature Summary Documents
• Team Collaboration and project management document
• Application Visual Guide, design layout, interface design, wire framing
• Database structure design
• Testing: Quality Assurance, Multiple Browser Compatibility’s, Security,
Performance- Load and Stress Testing, Usability
• Maintenance

Dept. of CSE, SVIT, Bengaluru 2022-2023 7


Exam Application using Python

CHAPTER 3
INTRODUCTION

3.1 Existing System

Online exam applications have been gaining popularity in recent years as more and
more educational institutions and businesses are turning towards remote learning and work
arrangements. The market is currently filled with a variety of online exam applications, each
with its own unique features and drawbacks. In this report, we will explore some of the most
popular online exam applications currently available in the market and discuss their
drawbacks.

One of the most popular online exam applications is Moodle. Moodle is an open-
source learning platform that enables educators to create and manage online courses.
Moodle provides a wide range of assessment tools such as quizzes, assignments, and surveys
that allow educators to create and grade exams. However, one of the main drawbacks of
Moodle is its steep learning curve. Moodle requires significant training and technical
knowledge, making it challenging for new users to navigate the platform.

TCS iON is an online exam application that is designed to offer end-to-end


examination services to educational institutions and businesses. It provides a comprehensive
platform for managing all aspects of an exam, from creating and delivering the exam to
grading and publishing results. One of the drawbacks of TCS iON is its cost. TCS iON is a
premium platform, which means that it may not be accessible to all educational institutions
and businesses. Additionally, while the application offers a wide range of assessments, some
educators may find that it lacks certain features that they require.

Another widely used online exam application is Blackboard. Blackboard is a


comprehensive learning management system that offers a range of features such as online
course management, communication tools, and assessment tools. Blackboard's assessment
tools enable educators to create and grade exams, assignments, and quizzes. However, one
of the main drawbacks of Blackboard is its high cost. Blackboard is an expensive platform
that is not accessible to small educational institutions or businesses.

Canvas is another online exam application that has gained popularity in recent years.
Canvas is a cloud-based learning management system that offers a range of features such as

Dept. of CSE, SVIT, Bengaluru 2022-2023 8


Exam Application using Python

course management, communication tools, and assessment tools. Canvas provides a variety
of assessment tools such as quizzes, assignments, and exams, which are customizable to fit
the needs of educators. However, one of the main drawbacks of Canvas is its limited
reporting capabilities. Canvas provides basic reporting tools, which may not be sufficient
for some educators.

Google Forms is a free online exam application that allows educators to create and
distribute exams. Google Forms provides a variety of question types such as multiple-
choice, short answer, and essay questions. Educators can customize exams with images and
videos, and results are automatically graded. However, one of the main drawbacks of
Google Forms is its limited security features. Google Forms is vulnerable to cheating and
fraud, and it does not provide secure exam delivery.

In conclusion, there are a variety of online exam applications currently available in


the market, each with its own unique features and drawbacks. Educators and businesses
must carefully consider their needs and budget before selecting an online exam application.
As an intern, it was important to identify the drawbacks of existing exam applications and
incorporate solutions to these drawbacks in our own application.

3.2 Proposed System

The proposed system for our exam application was developed in Python and was
fully coded and implemented by our team. The system was designed to be a comprehensive
platform that would allow users to register for exams and quizzes, and all their data would
be stored in a secure database. The registration process involved several endpoints,
including email authentication, password strength verification, phone number verification,
and security questions. Additionally, a CAPTCHA system was implemented to prevent bots
from clogging up the system.

After the user has registered, they can log in and access their profile and take tests.
The application is designed to be user-friendly and intuitive, and the login process is simple
and straightforward. Once the user has logged in, they can access their test history and take
new tests. The application also allows users to review their previous test results and view
the correct answers for any questions that they may have gotten wrong.

Dept. of CSE, SVIT, Bengaluru 2022-2023 9


Exam Application using Python

Our application can be marketed as a free alternative to premium exam applications


such as TCS iON and Moodle platforms. We believe that our application can be easily
incorporated by schools and organizations with limited budgets, as it offers a similar range
of features as premium software.

One of the key benefits of our application is its robustness. The system has been
designed to be free from bloat, and it can run on lower-end systems with minimal storage
and performance requirements. This is not always the case with other exam applications,
which may require higher-end hardware and more storage.

Another benefit of our application is its security features. We have implemented


several measures to ensure that the system is secure and that users' data is protected. For
example, we have implemented email and phone verification, which helps to prevent
fraudulent activity. We have also implemented a security question feature, which allows
users to recover their account in case they forget their password.

Our application also offers a range of customization options, which allows schools
and organizations to tailor the platform to their specific needs. This is particularly useful for
organizations that may have unique requirements or preferences when it comes to exams
and assessments.

However, we acknowledge that our application may not offer the same range of
features as premium software. For example, some educators or businesses may require more
sophisticated reporting capabilities or adaptive testing. Additionally, while our application
is free to use, it does require some technical expertise to set up and maintain. Therefore, it
may not be suitable for all users.

Our proposed system for an exam application offers a comprehensive platform for
exams and quizzes. It is designed to be user-friendly, secure, and customizable, and it can
be used by schools and organizations with limited budgets. While our application may not
offer the same range of features as premium software, we believe that it is a viable
alternative for many users. We look forward to continuing to develop and improve our
application.

Dept. of CSE, SVIT, Bengaluru 2022-2023 10


Exam Application using Python

CHAPTER 4
REQUIREMENT SPECIFICATION

4.1 Software Requirements

Software requirements refer to the set of conditions, specifications, and expectations


that outline what a software system must accomplish. These requirements provide clear and
concise instructions for the design, development, and maintenance of software products.
They are crucial to ensure that software meets the needs of its intended users, functions as
intended, and is reliable, scalable, and secure.

A well-defined set of software requirements can also serve as a foundation for testing
and quality assurance activities, as well as a benchmark for evaluating the success of a
software development project. Therefore, careful analysis and documentation of software
requirements are essential for delivering high-quality software products that meet customer
expectations.

➢ Programming language: Python


➢ Operating system: Windows 10
➢ IDE used: Spyder
➢ Front end: Tkinter (Python)
➢ Back end: Python

4.2 Hardware Requirements

➢ C.P.U: Pentium IV 2.4 GHz or above


➢ Memory (Primary): 512 MB, 1 GB or above
➢ Output Devices: Desktop
➢ Input Devices: Keyboard
➢ Hard Disk: 160GB or above
➢ Monitor: 15 VGA colour

4.3 Functional Requirements

Functional requirements refer to the set of features and capabilities that a system
must possess to satisfy the user's needs and fulfil its intended purpose. Functional

Dept. of CSE, SVIT, Bengaluru 2022-2023 11


Exam Application using Python

requirements refer to the activities or functions that the system must perform to meet the
user's needs. The functional requirements for the exam application system can be broadly
classified into different categories such as registration, authentication, test creation and
management, test-taking interface, grading and reporting, and security.

• Registration: The system should have a user registration feature that allows the user
to create a profile and enter relevant details such as name, email, phone number, and
password. The system should also verify the user's email address and phone number
to ensure that they are legitimate. In addition, the registration process should include
security features such as the use of strong passwords and security questions.
• Authentication: Once the user has registered, the system should allow them to log
in using their username and password. The system should verify the user's
credentials and grant access to the appropriate features of the application. The
system should also have a password reset feature that allows the user to reset their
password using their email address or phone number.
• Test creation and management: The system should allow authorized users to
create tests and quizzes that can be taken by registered users. The system should
support multiple question types such as multiple-choice, true/false, and essay
questions. The system should also allow users to set time limits for the tests and
specify which questions are mandatory. The system should allow for the creation of
custom grading scales and allow users to assign weights to different questions.
• Test-taking interface: The system should provide a clean and user-friendly
interface for users to take the tests. The interface should support all the question
types that are available in the test, and allow users to navigate back and forth
between questions. The interface should also display a countdown timer and alert
users when they are running out of time.
• Grading and reporting: Once the user has completed the test, the system should
automatically grade the test and generate a report that shows the user's score and any
feedback provided for incorrect answers. The system should allow authorized users
to view the reports for all users who have taken the test.
• Security: The system should have robust security features that protect user data and
prevent unauthorized access to the system. The system should use encryption to
protect user passwords and other sensitive information. The system should also
include features such as CAPTCHA to prevent automated attacks and other security
measures to protect against hacking and other security threats.
Dept. of CSE, SVIT, Bengaluru 2022-2023 12
Exam Application using Python

4.4 Non-Functional Requirements

Non-functional requirements refer to the characteristics of the system that are not
related to its functionality but are equally important for the success of the system. Below
are the non-functional requirements for the exam application system:

• Performance: The system should be able to handle a large number of users


simultaneously without any delay or system crash. The response time for the system
should be fast and the system should be able to process user requests efficiently.
• Security: The system should be designed with a robust security mechanism to
ensure that the user data is protected from unauthorized access. It should have
features like data encryption, strong user authentication, and authorization.
• Usability: The system should be easy to use and user-friendly. The interface should
be intuitive and self-explanatory, making it easy for users to navigate through the
system. The system should be compatible with different devices and browsers.

In summary, the exam application system should be designed with a focus on performance,
security, and usability to ensure the success of the system.

Dept. of CSE, SVIT, Bengaluru 2022-2023 13


Exam Application using Python

CHAPTER 5
SYSTEM DESIGN

5.1 Basic Block Diagram

Registration is completed
successfully
User first User provides
registers in the credentials and
application logs into the
exam application

User is
authenticated

User completes
the test
The exam User can take up
application shows any exam / test
the results of the that they have
test taken by user access to

Figure 5.1: Basic block diagram of data flow


The basic block diagram represents the flow of the exam application system. The
process starts with the user registering in the application by providing their necessary
details, which gets stored in the database. After successful registration, the user provides
their login credentials and gets authenticated by the system. Once authenticated, the user
can access any exam or test they have permission to take. After completing the test, the
application shows the result of the test to the user.

It is an essential representation of the process flow, which helps understand how the
system works. The registration and authentication process ensures that only authorized users
access the system, while the exam-taking process records and stores the user's test data for
future reference. The result display feature provides feedback to the user about their
performance, which helps in self-improvement. Overall, the basic block diagram provides
an overview of how the exam application system works and highlights the importance of
the different steps involved in the process.
Dept. of CSE, SVIT, Bengaluru 2022-2023 14
Exam Application using Python

5.2 Deployment Diagram

Figure 5.2: Deployment Diagram

The deployment diagram for the exam application consists of four main
components: web server, application server, storage, and database server. The web server is
responsible for handling the user's requests and responses by providing access to the exam
application through a web browser. The application server processes these requests and
interacts with the storage system to retrieve the necessary data. The storage system stores
the application code, assets, and files, and is accessible by both the web and application
servers. The database server is responsible for storing user data such as their login
credentials, test data, and other user information.
To ensure high availability and scalability, the web server, application server, and
database server should be connected in a distributed fashion. The storage system can be
implemented using cloud storage services or on-premise storage solutions. The database
server should be replicated to provide redundancy and ensure data availability in case of
any failure. By having this deployment architecture, the exam application can handle a large
number of concurrent users, provide faster response times, and ensure the reliability and
availability of user data.

Dept. of CSE, SVIT, Bengaluru 2022-2023 15


Exam Application using Python

5.3 Flow Chart

Figure 5.3 Flow Chart


The flow chart represents the step-by-step process that a user must follow to access
and complete the exam application. It starts with a new user who registers for the exam
application by creating an account. If the login credentials entered by the user are invalid,
they are not allowed to access the dashboard page. Once the user successfully logs in, they
are taken to the dashboard where they can see their profile screen and update their security
questions. If the data is successfully updated, they are taken back to the profile screen.
The next step in the flow chart is taking the MCQ test. Once the user starts the test,
they will be presented with multiple-choice questions. If they score above the threshold,
they move on to the next stage. If not, they will have to redo the test.
After the MCQ test, the user moves on to the SBQ test. Once again, if they score
above the threshold, they move on to the next stage. If not, they will have to redo the test.
Finally, once the user completes both tests and their scores are above the threshold, the exam
application generates their results.
The flow chart follows a logical sequence of steps that users must follow to complete
the exam application. It ensures that users can only move forward in the application once
they have completed the previous steps successfully. It also emphasizes the importance of
security by prompting users to update their security questions and by ensuring that their
login credentials are valid before they can access the dashboard page.
Dept. of CSE, SVIT, Bengaluru 2022-2023 16
Exam Application using Python

5.4 Sequence Diagram

Figure 5.4: Sequence Diagram


The sequence diagram is a behavioural diagram that shows the interactions between
the objects participating in a specific scenario. In the given sequence diagram, the scenario
is the login process of the exam application. The sequence diagram starts with the user
attempting to log in. The system then checks the entered email and password against the
credentials in the database. If the credentials match, the user is prompted to enter a captcha
to ensure they are not a bot. If the captcha is entered correctly, the login is successful.

If the user is a new user, they are prompted to enter their personal information such
as name, nationality, and date of birth, and insert a profile picture. They are also required to
enter security questions that can be used later to reset their password. After providing all the
necessary information, the system generates a random password and sends it to the user's
email address. The account is then created, and all the data entered by the user is stored in
the database. The login time is also recorded in the database.

Dept. of CSE, SVIT, Bengaluru 2022-2023 17


Exam Application using Python

CHAPTER 6
IMPLEMENTATION

6.1 Implementation
The exam application is developed using the Python programming language with
the tkinter framework being utilized for designing the user interface. The application
employs Firebase as its storage server/database, which is an online server where user data
is securely stored. The development process involved using the Anaconda framework and
the Spyder IDE for coding and testing the application.

The development process commenced with familiarizing with the tkinter framework
to understand how different elements such as frames, text boxes, buttons, etc., could be
manipulated. A simple application was created to understand the design elements and its
functioning. The development progressed by coding the registration and login systems,
incorporating numerous features such as authentication of email, having a strong password,
capturing the user's phone number, security questions for login, and a CAPTCHA system
to ensure that bots don't clog up the system.

Further development was carried out to create the test-taking framework. This
included designing the test frames, randomizing questions, and scoring the answers. Once
the test was completed, the results were stored on Firebase along with the user's profile data
and test data such as marks and the answers given by the users.

The development of the exam application was initiated by first familiarizing oneself
with the tkinter framework and its functionalities. After grasping the basics, the focus shifted
towards understanding the various buttons such as radio, check box, etc., and the storage
and retrieval of the values of the selected buttons.

Once the foundational knowledge was acquired, the registration module was started
for implementation. The email checking functionality was integrated into the registration
module, which is taken in from one of the text boxes and sent to the Firebase server along
with all the other data credentials. The Firebase server handles email format checking,
ensuring that a valid email address is entered.

The password generation functionality was also integrated into the registration
module, where the application generates a password consisting of a random number of

Dept. of CSE, SVIT, Bengaluru 2022-2023 18


Exam Application using Python

characters, numbers, and symbols. This ensures that the generated password is highly secure
and cannot be easily guessed by malicious actors.

The name field is required to be filled in by the user with their name, followed by
the nationality, which consists of a listbox with all the nations displayed. This prevents the
user from manually entering their nation, reducing the risk of typos and errors.

The application was programmed using the Anaconda framework, utilizing the
Spyder IDE for writing and testing the code. The UI was built using the Tkinter framework,
which provides a comprehensive set of tools and widgets for building user interfaces.

Firebase was chosen as the storage server/database for the exam application. All the
data, including the login credentials, test answers, and even the test questions, are stored on
the Firebase online server. This provides high availability, reliability, and scalability,
making it an ideal choice for an exam application.

The exam application has a user registration module implemented using Python and
the Tkinter framework. The application uses Firebase as the storage server and database to
store all the user's data, including login credentials, test answers, and questions. The
registration process starts with email validation, which is done by the Firebase server when
the user enters their email address in the designated textbox. The password is generated
automatically by the application using a combination of characters, numbers, and symbols
to ensure high security.

The user is required to enter their name, nationality, and date of birth in the
respective fields. The nationality field is implemented using a listbox that displays all the
available nations for the user to choose from, rather than requiring the user to manually enter
their nation. The date of birth field is implemented using Tkcalendar, making it easy for
users to select their date of birth using a calendar widget. The user is also provided with an
option to upload an image by clicking the "upload image" button, which opens up the file
system browser of the current user's computer. The selected image is then uploaded and
saved in the Firebase server.

Once all the required fields are filled, the user is prompted to answer five security
questions before submitting their registration details. After completing the security
questions, the user can update their password if they forget it. Only after all these steps are
completed, the "submit for registration" button is enabled.

Dept. of CSE, SVIT, Bengaluru 2022-2023 19


Exam Application using Python

After registration, the user is redirected to the login page, where they must enter their
credentials and solve a captcha, which is a basic arithmetic function. The captcha is used to
ensure that the user is a real person and not a computer program trying to access the system.
If the user enters the correct captcha, the login button is enabled, allowing them to access
the exam application.

The Exam Application is designed to enable users to take MCQ and SBQ tests after
creating an account. The user can register by providing their name, date of birth, nationality,
email, and a profile picture that can be uploaded to the Firebase server. The Tkinter
framework is utilized to create the application's user interface, with Spyder IDE used for
code writing and testing.

Upon successful registration, the user can access their profile page, where they can
update their personal information, such as name, date of birth, and nationality. The user is
required to answer a random security question correctly before updating their information.
The application uses Firebase to store all user data, including test answers, questions, and
credentials.

The Exam Application comprises two tests: MCQ and SBQ. The start test button
leads the user to a new frame that displays the instructions for the test. After a specified
amount of time, the user is redirected to the MCQ test page, where they must answer the
questions presented.

During the registration process, the application performs various checks to ensure
that the user has entered valid data. For example, email validation is done by sending the
email to Firebase for validation. The application generates a highly secure password for the
user and sends it to their email address for future use. The nationality selection field utilizes
a listbox to display all available nations, which the user can choose from.

The MCQ answering screen in the application consists of two frames. One frame
displays the MCQ questions and the answer choices. The user can select the appropriate
answer by using a radio button. Additionally, the save and next button are displayed to allow
the user to save their choice and move on to the next question. The other frame displays all
the questions in the test and color codes them as red or green. Red signifies that the user has
not attended that specific question, and green signifies that the user has attended the
question. It is worth noting that the MCQ question test is designed in such a way that the
user cannot go back to previous questions and change them or reattempt them in any way.
Therefore, the user must ensure that they save their choice on the radio button by pressing
Dept. of CSE, SVIT, Bengaluru 2022-2023 20
Exam Application using Python

the save button each time. For the last question, the submit test button shows up, which
allows the user to send the test to the database to get stored and graded based on the number
of right options the user has chosen.

Internally, the key answers are used to check the user's answers, and the results are
then sent to the database to be stored for future purposes. Once the user has submitted the
test, they are redirected to the profile page. Here, the user can update their profile by
answering a randomly generated security question. The name, date of birth, and nationality
fields can be updated, but only after correctly answering the security question.

Beside the update profile section is the question frame, where the user can take the
MCQ and SBQ tests. The start test button redirects the user to a new frame, where the test
instructions are displayed. After a certain amount of time, the user is redirected to the test
page where the MCQ questions are displayed.

The Sentence Based Question (SBQ) section is an integral part of the testing process
and is accessible from the main profile page. Upon entering the SBQ section, the user is
presented with clear instructions to ensure that they are fully aware of how to proceed. In
this section, the user is required to enter their answers in sentence-based format. It should
be noted that the user must save their answer after entering it, otherwise the data will not be
stored, and they will be unable to navigate back to the previous question.

As with the MCQ section, the SBQ section includes a submit button at the end of
the test. When the user clicks on this button, the data is sent to the server to be stored. It is
important to mention that the SBQ section also includes a plagiarism checker. Each answer
entered by the user is checked against previous answers submitted by other users to ensure
that there is no duplication. In the event of any duplication, the user will be informed of the
percentage of the match.

The SBQ section has a new frame that is separate from the MCQ section, and the
instructions are displayed to ensure that the user is familiarized with the process. Unlike the
MCQ section, the SBQ section does not allow users to navigate back to previous questions
or change their answers once they have been saved. Users are advised to carefully review
their answers before submitting them.

After the user completes the SBQ section, they are redirected to the main profile
page, where they can view and update their personal information. The profile page includes
a random security question that the user must answer correctly before they can update their

Dept. of CSE, SVIT, Bengaluru 2022-2023 21


Exam Application using Python

personal information, including their name, date of birth, and nationality. Additionally, the
profile page includes a frame where the user can take the MCQ and SBQ tests.

The MCQ answering screen has two frames, one where the user can see and select
their answer using a radio button, with the save and next button displayed. The other frame
displays all the questions in the test and color-codes them as red or green. Red signifies that
the user has not attended that specific question, while green indicates that the user has
attended the question. Similar to the SBQ section, the MCQ section also includes a submit
test button, which sends the data to the database to be stored and graded based on the number
of correct options selected by the user.

The test results are an essential part of any test-taking system, and the presented
application is no different. Once the user has completed the test, the system shows the
amount of marks that the user has scored and the plagiarism content of the user. During the
test, the application is set to full-screen mode, and the navigation buttons (minimize,
maximize, and close buttons) are disabled to make the user unable to perform any cheating
acts.

After completing the test, the user can generate their results by clicking on the
"Generate Result" button, which displays their scores for the most recent test. The MCQ
and SBQ tests are hard-coded into the application at present. The test conductor needs to
provide the questions as well as the options for the answers for the MCQ test. Similarly, for
the SBQ test, the test conductor needs to provide the questions.

The MCQ answering screen has two frames. One frame allows the user to see and
select the choice using a radio button, and the save and next button is displayed. The other
frame shows all the questions in the test and color codes them to either red or green. Red
signifies that the user has not attended that specific question, and green means that the user
has attended the question. The MCQ question test is built in such a way that the user can't
go back to the previous questions and change them or reattempt them in any way. Therefore,
the user needs to ensure that they save their choice on the radio button by pressing the save
button each time. For the last question, the submit test button appears, allowing the user to
send the test to the database to get stored and also graded based on the number of right
options that the user has chosen. Internally this is checked with the key answers and then
sent to the database to be stored for further purposes. After submitting the test, the user is
redirected to the profile page.

Dept. of CSE, SVIT, Bengaluru 2022-2023 22


Exam Application using Python

The SBQ questions are situated next to the MCQ questions and can be accessed by
the user. The SBQ questions also have a new frame where the instructions for the test are
displayed to the user to get themselves familiarized with it. Here too, the user has to enter
their answer in Sentence-Based format. The user after entering the answer needs to save the
answer, or the data won't be stored, and they can't navigate back to the previous question
anyway. At the last question, the submit button is shown to send the data to the server. The
SBQ questions also have a plagiarism checker where each answer entered by the user is
checked with the previous answers entered by other users to compare. It shows the amount
of percentage that the answer matches with others. After submitting the test, the user is
redirected to the profile page.

In the profile page, the user can update their profile. A random security question is
provided, which the user needs to answer correctly before the update can be done. Here, the
name, date of birth, and nationality can be updated, but only possible after answering the
security question. Also, beside it is the question frame where the user can take the MCQ
and SBQ tests. The start test takes the user to a new frame where the instructions for the test
are displayed to the user. After a certain amount of time, the user is redirected to the test
page where the MCQ and SBQ questions are displayed to the user.

The system incorporates various features such as hard-coded tests, randomized


security questions, plagiarism checker, and full-screen mode during the test. These features
enhance the user's experience while taking the test and ensure that the test is conducted in a
fair and secure manner.

Dept. of CSE, SVIT, Bengaluru 2022-2023 23


Exam Application using Python

CHAPTER 7
CONCLUSION
Working with K-AKA Technology Services was a truly enriching experience that
allowed me to delve into the world of coding and gain valuable insights into the professional
work environment. During my internship, I had the opportunity to grow both personally and
professionally by honing my time management skills and developing a keen sense of
mindfulness when it came to my work.

Moreover, my experience at K-AKA Technology Services exposed me to the


nuances of work culture, which required me to be adaptive to changing requirements and
learn new frameworks and technologies quickly. It was during this time that I was
introduced to Tkinter and firebase, a technology that enabled me to build robust and intuitive
User Interfaces without being overly complex or obstructive.

Overall, my time at K-AKA Technology Services was a rewarding experience that


provided me with a solid foundation for my future professional endeavours. It was an
invaluable opportunity that helped me grow both as a person and a professional, and I am
grateful for the opportunity to have been a part of such an innovative and forward-thinking
company.

Dept. of CSE, SVIT, Bengaluru 2022-2023 24


Exam Application using Python

CHAPTER 8
SNAPSHOTS

Figure 8.1 Application Start Window

Figure 8.2 Register User Page

Dept. of CSE, SVIT, Bengaluru 2022-2023 25


Exam Application using Python

Figure 8.3 Register User Page after Uploading Photo

Figure 8.4 Security Questions Page

Figure 8.5 Login Page Window

Dept. of CSE, SVIT, Bengaluru 2022-2023 26


Exam Application using Python

Figure 8.6 Profile Window

Figure 8.7 Update Profile Window

Figure 8.8 MCQ Test Screen


Dept. of CSE, SVIT, Bengaluru 2022-2023 27
Exam Application using Python

Figure 8.9 SBQ Information Screen

Figure 8.10 SBQ Test Screen

Dept. of CSE, SVIT, Bengaluru 2022-2023 28


Exam Application using Python

Figure 8.11 SBQ Submit Test Screen

Figure 8.12 Test Score Displayed on Screen

Dept. of CSE, SVIT, Bengaluru 2022-2023 29


Exam Application using Python

CHAPTER 9
REFERENCES
[1]. https://docs.python.org/3.11/library/index.html
[2]. https://docs.python.org/3/library/tk.html
[3]. https://firebase.google.com/docs
[4]. https://console.firebase.google.com/u/2/project/firstapplication-
41bdb/database/firstapplication-41bdb-default-rtdb/data/~2FAccount
[5]. https://www.geeksforgeeks.org/file-explorer-in-python-using-tkinter/

Dept. of CSE, SVIT, Bengaluru 2022-2023 30

You might also like