Professional Documents
Culture Documents
Raj 20020107097 (1) (1)
Raj 20020107097 (1) (1)
INTERNSHIP REPORT
On
Online Crime Reporting System (OCRS)
Submitted
by
Guided By:
Ms. Ankita shah
An
Internship Report
Submitted to
i
AHMEDABAD INSTITUTE OF TECHNOLOGY
CERTIFICATE
This is to certify that the Internship report submitted along with the project entitled
Internship in Aavishkar CodeX Infotech LLP has been Completed by Sathvara Raj
Vasantbhai under my guidance in complete fulfilment for the Bachelor of Engineering in
Computer Engineering Branch, 8th Semester of Gujarat Technological University,
Ahmedabad during the academic year 2024.
Date:
Seal of Institute
ii
GUJARAT TECHNOLOGICAL UNIVERSITY
CERTIFICATE FOR COMPLETION OF ALL ACTIVITIES AT ONLINE PROJECT PORTAL
B.E. SEMESTER VIII, ACADEMIC YEAR 2023-2024
Date of certificate generation : 16 April 2024 (19:35:13)
Name of Student : Sathvara Raj Vasantbhai Name of Guide : Mrs. Shah Ankita Praveenkumar
Disclaimer :
This is a computer generated copy and does not indicate that your data has been evaluated. This is the receipt that GTU
has received a copy of the data that you have uploaded and submitted as your project work.
*Guide has to sign the certificate, Only if all above activities has been Completed.
Internship Completion Letter
This is to certify that, Mr. /Mrs. Raj Sathvara Enrolment No. 200020107097
Student of Ahmedabad Institute of Technology. Has successfully completed a
Fourteenth-week (84 Days) Internship in the field Web Development of from the date:
15th January 2024 to date: 20th April 2024.
During the period of his/her internship program with us, He / She were exposed to
following different processes and were found sincere and hardworking.
DECLARATION
We hereby declare that the Internship report submitted along with the Internship
entitled Project Online Crime Reporting System (OCRS) submitted in Complete for
Bachelor of Engineering in Computer Engineering Branch to Gujarat Technological
University, Ahmedabad, is a bonafide record of original Internship work Completed by me
at Aavishkar CodeX Infotech LLP under the supervision of External Guide Ansh Patel
and that no part of this report has been directly copied from any students’ reports or taken
from any other source, without providing due reference.
iv
ACKNOWLEDGEMENT
I also thank my parents, friends and all the members of the family for their precious
support and encouragement which they had provided in completion of my work. In addition
to that, I would also like to mention the company personals who gave me the permission to
use and experience the valuable resources required for the Internship.
Thus, in conclusion to the above said, I once again thank the staff members of
Aavishkar CodeX Infotech LLP for their valuable support in completion of the
Internship.
Thank You
v
TABLE OF CONTENTS
CHAPTERS PAGE NO.
Title Page i
Certificate Page ii
Internship Certificate iii
Declaration iv
Acknowledgements v
Table of Contents vi
Abstract ix
CHAPTER 1 INTRODUCTION OF PROJECT & COMPANY 01
PROFILE
1.1 Introduction 2
1.1.1 Company Profile 2
1.1.2 Company Products 2
1.1.3 Company Mission and Vision 3
1.2 Introduction of the Project 4
1.2.1 Purpose of the Project 4
1.2.2 Function Requirements 4
1.2.3 Problems in Existing System 5
VI
3.1.2 about CSS 13
VII
6.2.10: district_master 53
6.2.11: state_master 54
6.2.12: crime_category_master 54
6.2.13: announcement_master 55
6.2.14: feedback_master 55
CHAPTER 7 TESTING 56
7.1 Testing Plan 57
7.2 Testing Strategies 59
7.3 Testing Method 62
7.4 Test Case 64
CHAPTER 9 ADVANTAGES 91
9.1 Advantages 92
9.2 Limitations 92
10.1 Conclusion 95
BIBLIOGRAPHY 96
a. Course Outcome 97
VIII
Online Crime Reporting System (OCRS)
Enrollment No.: 200020107097
Student Name: Sathvara Raj Vasantbhai
ABSTRACT
ix
Enrollment Number: 200020107097 Introduction of Project & Company Profile
CHAPTER: 1
INTRODUCTION OF PROJECT
&
COMPANY PROFILE
1.1. Introduction
1.1.1. Company Profile
1.1.2. Company Products
1.1.3. Company Mission and Vision
1.2. Introduction of the Project
1.2.1. Purpose of the Project
1.2.2. Function Requirements
1.2.3. Problems in Existing System
1.2.4. Main Modules
1.1. Introduction
1.1.1. Company Profile
Aavishkar CodeX Infotech LLP is a brain child of Miss. Mohini Kumare and Mr.
Prakash Suthar who partnered to initiate the ambitious venture. Started as a small
partnership firm way back in 2022, it grew exponentially within a decade.
The glorious journey that started with web development, MLM, and digital
marketing services, moved on with new additions every year. The firm got its new
structure as a company named Aavishkar CodeX Infotech LLP and now has grown
into a full-fledged IT team of more than 10.
With its expansion, the company is all set to provide a comprehensive range of
services to the global market. Having already worked on more than 30 projects and
served top-notch clients from countries like Australia, Singapore, and Canada, we are
expanding our horizons to the other untraded markets as well.
Plugins into existing website. Aavishkar CodeX Infotech LLP follows step-by-step
approach when providing Joomla Customization Services to get affirmative results
which will add unique needs.
Aavishkar CodeX Infotech LLP is also providing Project Training for the
implementation of the right tools for enterprise-wide planning and software
development.
Aavishkar CodeX Infotech LLP service portfolio encompasses the entire range of
solutions required by the IT industry. We also offer placement services to fresher
and experienced professionals in Ahmedabad.
Aavishkar CodeX Infotech LLP is imparting high-quality education in the realm of
major programming and non-programming skills including Python with Django
development, Java, Python, ASP.Net, mobile app development, digital marketing,
graphic designing, web designing, SEO, and many others.
The learners get intensive coaching from the highly experienced trainers with best
classroom environment and live project training.
1.1.3. Company Mission and Vision
Company Mission:
o To provide the most effective and friendly computer training which will
result in productive and satisfied users of all levels.
o Aavishkar CodeX Infotech LLP aims at delivering cutting-edge web
solutions to the clients and helping them capitalize the optimum power of
the IT technologies.
o We ensure all our designing and development assignments are enhancing
performance and revenues of your business.
o Our training programs are specifically designed to train candidates to work
in the industry as soon as they complete training.
Company Vision:
o As an established company now, we visualize our success in becoming a
top-notch IT company and training Centre for a plethora of skills and
technologies.
o Keeping our customer's satisfaction at the Centre, we also provide the best
platform for the fresh talents to learn, nurture, and grow.
This application will be useful for the remote access of criminal data which will be
helpful for the investigations carried by police department. Moreover, it will also
provide an alternate safe path on user’s demand before entering the crime area. The
database for this project will be stored on cloud to gain remote access. For avoiding
any false incidence to be notified to other user, the information provided will be
first verified by the police officials. After approval of the information, it will be
broadcasted to other users using the application.
In the present scenario filing an FIR/complaint is a hectic task since one must go
through a very huge process for justice. It matter how small or big the crime is. In
general, to file an FIR/complaint one must search for a nearby police station and
have to wait until a cop takes upon the request and either we have to recite or have
to give it as a written statement.
Certainly this takes nearly a day of an individual’s time. In this busy world, it’s
quite tough to give up on our routine works. The existing system of filing
complaints/FIR affects our daily routine, makes us spend a lot of our precious time
in it. Filing an FIR, meanwhile we could have done three. Mainly could give a lot
of chances and time for verdicts to easily escape from cases making their pre bails
ready or even for absconding.
To avoid such miserable situations we have designed an app that makes everything
happen in jut few minutes. Below diagram represents the existing process of filing
complaints/FIR in police station which starts by a simple request from a Citizen
Admin
o Login
o Create category
o Create department ( division)
o City
o Area / Town
o Create police user
o Manage police user
o View compliant report
o All report ( CSR / FIR )
Police
o Login
o View FIR
o View CSR
o View status
User
o Register
o Login
o Create FIR
o Create CSR
o View FIR
CHAPTER: 2
SYSTEM REQUIREMENTS
Software Requirement
o OS: Window 7 or Any Compatible OS
o Browser: Chrome or any Compatible browser
Basic Requirement
o Internet Connection.
CHAPTER: 3
FRONT END OF SYSTEM
o Any HTML document mainly comprises two parts, the head and the body.
o The Head includes the additional information of the document, apart from the
one displayed on the web page.
o It includes the HTML version, the title, and also the metadata.
o And the information that will be displayed on the web page is put inside
the Body tag.
o HTML, or Hypertext Markup Language, is the standard language used to create
and design web pages.
o It provides the structure and content of a webpage by using a system of markup
tags and attributes.
Here's a breakdown of HTML's key components and concepts:
o Elements:
HTML documents are composed of elements, which are represented by
tags enclosed in angle brackets (< and >).
Elements can have attributes that provide additional information about
them.
o Tags:
Tags are used to define the beginning and end of an element.
Some elements are self-closing, meaning they don't have content and
close themselves within the opening tag.
o Attributes:
Attributes provide additional information about an element and are
specified within the opening tag.
They are comprised of a name and a value, separated by an equals sign
(=).
o Document Structure:
HTML documents have a specific structure defined by a hierarchy of
elements.
The basic structure typically includes a <!DOCTYPE> declaration,
<html>, <head>, and <body> elements.
o Semantic Markup:
HTML provides semantic elements that convey the meaning and
structure of content to both browsers and developers.
o Client-Side Scripting:
JavaScript is primarily used as a client-side scripting language, meaning
it runs on the user's web browser rather than a remote server.
This allows for dynamic updates and interaction without needing to
reload the entire webpage.
o Core Features:
Variables and Data Types:
JavaScript supports various data types such as numbers, strings,
booleans, arrays, objects, functions, and more.
Variables are used to store data, and they can be dynamically
typed.
Control Structures:
JavaScript provides control structures like conditionals (if, else
if, else), loops (for, while, do-while), and switch statements.
Functions:
Functions are reusable blocks of code that perform a specific
task.
JavaScript supports both function declarations and function
expressions, as well as arrow functions introduced in ES6.
Objects and Prototypes:
JavaScript is an object-oriented language, where objects are
collections of key-value pairs.
Objects can also inherit properties and methods from other
objects through prototypes.
DOM Manipulation:
The Document Object Model (DOM) represents the structure of
HTML documents as a tree of objects.
JavaScript can manipulate the DOM to dynamically change the
content, structure, and style of web pages.
o Event-Driven Programming:
JavaScript follows an event-driven programming paradigm, where
actions or events (like mouse clicks, key presses, or page loads) trigger
the execution of specific code.
Event handlers are used to respond to these events and perform actions
accordingly.
o Asynchronous Programming:
JavaScript supports asynchronous programming through mechanisms
like callbacks, promises, and async/await.
This allows non-blocking execution of code, enabling tasks like
fetching data from servers, handling user input, and performing
animations without freezing the UI.
o Libraries and Frameworks:
JavaScript has a vast ecosystem of libraries and frameworks that extend
its capabilities and streamline development. Popular libraries include
jQuery for DOM manipulation and AJAX requests, while frameworks
like React.js, Angular, and Vue.js provide structured approaches to
building complex web applications.
o Server-Side Development:
While JavaScript is primarily associated with client-side scripting, it is
also used for server-side development.
Node.js is a runtime environment that allows JavaScript to be executed
on the server, enabling full-stack JavaScript development.
o Security Considerations:
JavaScript runs in a sandboxed environment within the browser, which
limits its access to the user's system.
However, developers must still be cautious of security vulnerabilities
like cross-site scripting (XSS) and ensure proper data validation and
sanitization.
o JavaScript is a fundamental technology for web development, empowering
developers to create interactive and engaging web experiences across various
devices and platforms.
o Its versatility and extensive ecosystem make it a cornerstone of modern web
development.
CHAPTER: 4
BACK END OF SYSTEM
Often, programmers fall in love with Python because of the increased productivity it
provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast.
Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault.
Instead, when the interpreter discovers an error, it raises an exception. When the program
doesn't catch the exception, the interpreter prints a stack trace. A source level debugger allows
inspection of local and global variables, evaluation of arbitrary expressions, setting
breakpoints, stepping through the code a line at a time, and so on. The debugger is written in
Python itself, testifying to Python's introspective power. On the other hand, often the quickest
way to debug a program is to add a few print statements to the source: the fast edit-test-debug
cycle makes this simple approach very effective.
Python Features:
Python provides many useful features which make it popular and valuable from the other
programming languages. It supports object-oriented programming, procedural
programming approaches and provides dynamic memory allocation. We have listed below
a few essential features.
o Easy to Learn and Use
Python is easy to learn as compared to other programming languages. Its
syntax is straightforward and much the same as the English language. There
is no use of the semicolon or curly-bracket, the indentation defines the code
block. It is the recommended programming language for beginners.
o Expressive Language
Python can perform complex tasks using a few lines of code. A simple
example, the hello world program you simply type print("Hello World"). It
will take only one line to execute, while Java or C takes multiple lines.
o Interpreted Language
Python is an interpreted language; it means the Python program is executed
one line at a time. The advantage of being interpreted language, it makes
debugging easy and portable.
o Cross-platform Language
Python can run equally on different platforms such as Windows, Linux,
UNIX, and Macintosh, etc. So, we can say that Python is a portable
language. It enables programmers to develop the software for several
competing platforms by writing a program only once.
o Free and Open Source
Python is freely available for everyone. It is freely available on its official
website www.python.org. It has a large community across the world that is
dedicatedly working towards make new python modules and functions.
Anyone can contribute to the Python community. The open-source means,
"Anyone can download its source code without paying any penny."
o Object-Oriented Language
Python supports object-oriented language and concepts of classes and
objects come into existence. It supports inheritance, polymorphism, and
encapsulation, etc. The object-oriented procedure helps to programmer to
write reusable code and develop applications in less code.
o Extensible
It implies that other languages such as C/C++ can be used to compile the
code and thus it can be used further in our Python code. It converts the
program into byte code, and any platform can use that byte code.
o Large Standard Library
It provides a vast range of libraries for the various fields such as machine
learning, web developer, and also for the scripting. There are various
language that is utilized in fields such as mathematics, software, and applications that we
are unaware of.
The following are some of the numerous applications of the Python programming
language.
o Artificial Intelligence and Machine Learning:
Python is ideal for a variety of machine learning (ML) and artificial
intelligence (AI) projects because to its security, flexibility, and simplicity.
Python has grown to be one of the most popular programming and coding
languages among data scientists. Because of its growing population and
uses, there are several Python machine learning and AI libraries and
packages on the market.
o Data analytics:
Data analytics, like Artificial Intelligence and Machine Learning, is a
rapidly expanding discipline that utilizes Python programming. These are
the times when we generate more data than ever. As a result, those who can
gather, manipulate, and organize data are in high demand. Python coding
for data science and analytics has shown to be really useful. The Python
programming language is simple to learn, comprehend, and use. Python
programming is versatile and well-supported. As a result, it is relatively fast
and simple to utilize for data analysis.
o Data Visualization:
Data visualization is another popular area of technology that can use Python
coding at its best to meet the requisite requirements. Data Visualization can
utilize the many strengths, benefits, and flexibility of Python coding. Since
Python programming is open-source, it provides a variety of graphing
libraries with all kinds of features. Whether you want to transform your
data into a creative graphical representation or represent it with a simple
plot, you will always find features to match your requirements.
o Programming Applications:
Python coding may be used to develop a variety of applications. Python is a
general-purpose programming language capable of reading and creating file
directories, GUIs, APIs, and other objects. Python programming and coding
allow you to construct a wide range of applications, including blockchain,
audio and video, and machine learning.
o Web Development:
Python programming is so flexible that it is easy to see why it is so
extensively employed in web development. Python is a great choice for web
development. There are several Python web development frameworks to
select from, including Django, Pyramid, and Flask; hence, Python is an
excellent choice for web development. These frameworks have powered a
variety of websites and services, including Spotify, Reddit, and Mozilla.
This is feasible because to the large and diverse libraries and modules that
come with Python frameworks. Python programming allows for and
facilitates database access, content management, and data permission.
o Game Development:
Python programming language does have its uses in the industry of online
games. If you have just started using or learning Python or game
development, then you can also discover how to make a text-based
prototype game in Python Coding. In doing so, you can work on various
skills and improve your knowledge in various areas.
o Language Development:
Python's simple and beautiful architecture, as well as its syntax, have
encouraged the development of other programming languages. Python's
syntax is comparable to that of Cobra, CoffeeScript, and Go, making it a
gateway language. So, even if you're completely new to programming,
knowing and studying Python will help you learn and build other
programming languages.
o SEO:
Python coding is also used in the field of search engine optimization. It is
an area that may greatly benefit from automation, which is absolutely
doable with Python. Python programming may be used in SEO to make
modifications to several pages or to classify keywords.
o Serverless Architecture:
Unlike most database systems, SQLite does not operate as a separate
server process. Instead, it is directly integrated into the application that
uses it. This means there is no need for a separate database server to be
running, making SQLite easy to deploy and manage.
o Self-contained:
SQLite databases are stored as a single file on disk. This makes it easy
to transport and share databases between different systems. The entire
database engine is contained within a library that can be linked with the
application, eliminating the need for external dependencies.
o Zero Configuration:
SQLite does not require any setup or administration. There are no
configuration files or user management tasks to worry about. You can
simply include the SQLite library in your application and start using it
immediately.
o Transaction Support:
SQLite supports ACID (Atomicity, Consistency, Isolation, Durability)
transactions, ensuring data integrity and reliability. It provides support
for multiple transactions and concurrent access to the database, allowing
multiple processes or threads to read from and write to the database
simultaneously.
o SQL Compatibility:
SQLite supports a large subset of SQL92 standard, including most of
the SQL language features such as joins, subqueries, triggers, and
views. This makes it easy for developers familiar with SQL to work
with SQLite databases.
o Cross-platform:
SQLite is cross-platform and works on various operating systems,
including Windows, macOS, Linux, iOS, and Android. This makes it a
versatile choice for developing applications that need to run on different
platforms.
o Extensibility:
SQLite allows developers to extend its functionality by writing custom
extensions in C/C++ or by loading dynamic link libraries (DLLs). This
enables developers to add new functions, collations, and virtual tables to
meet specific application requirements.
Overall, SQLite is an excellent choice for small to medium-sized applications that
require a lightweight, embedded database solution with minimal setup and
administration overhead. However, it may not be suitable for high-concurrency, high-
transaction volume scenarios where a client-server database system like MySQL or
PostgreSQL would be more appropriate.
o Transactional support:
SQLite supports ACID (Atomicity, Consistency, Isolation, Durability)
transactions, ensuring data integrity and reliability. It provides support
for multiple transactions and concurrent access to the database, allowing
for safe and efficient data manipulation.
o SQL compatibility:
SQLite supports a large subset of the SQL92 standard, making it easy
for developers familiar with SQL to work with. It includes features such
as joins, subqueries, triggers, and views, allowing for complex data
manipulation and querying.
o Cross-platform:
SQLite is cross-platform and works on various operating systems,
including Windows, macOS, Linux, iOS, and Android. This makes it a
versatile choice for developing applications that need to run on different
platforms.
Overall, SQLite is an excellent choice for small to medium-sized applications,
embedded systems, and mobile apps that require a lightweight, embedded database
solution with minimal setup and administration overhead. However, it may not be
suitable for high-concurrency, high-transaction volume scenarios where a client-server
database system like MySQL or PostgreSQL would be more appropriate.
CHAPTER 5
SYSTEM ANALYSIS AND SYSTEM DESIGN
During the analysis phase, SAD professionals delve deep into the existing systems and
processes, meticulously identifying strengths, weaknesses, and opportunities for improvement.
Through interviews, surveys, and observation, they gather requirements from stakeholders,
ensuring that every voice is heard and every need is accounted for.
With requirements in hand, the design phase begins, where SAD experts transform
abstract ideas into concrete plans. They define the system architecture, user interfaces, and
data structures, ensuring that the design aligns closely with the gathered requirements and the
overarching goals of the organization.
Implementation brings the design to life, as developers translate the blueprints into
functional code. Rigorous testing follows, with each component scrutinized to ensure its
reliability, security, and performance. User acceptance testing ensures that the system not only
meets technical specifications but also satisfies the needs and expectations of its intended
users.
Deployment marks the culmination of the SAD process, as the new system is
introduced into the organization's ecosystem. With proper training and support, users adapt to
the new system, embracing its capabilities and maximizing its potential to drive efficiency and
innovation.
But the journey doesn't end there. Maintenance and support are ongoing
responsibilities, as SAD professionals monitor the system, address issues, and incorporate
updates to keep it running smoothly and meeting the evolving needs of the organization.
A software life cycle model (also termed process model) is a pictorial and
diagrammatic representation of the software life cycle. A life cycle model represents all the
methods required to make a software product transit through its life cycle stages. It also
captures the structure in which these methods are to be undertaken.
In other words, a life cycle model maps the various activities performed on a software
product from its inception to retirement. Different life cycle models may plan the necessary
development activities to phases in different ways. Thus, no element which life cycle model is
followed, the essential activities are contained in all life cycle models though the action may
be carried out in distinct orders in different life cycle models. During any life cycle stage,
more than one activity may also be carried out.
The development team must determine a suitable life cycle model for a
particular plan and then observe to it.
Without using an exact life cycle model, the development of a software product
would not be in a systematic and disciplined manner. When a team is developing a
software product, there must be a clear understanding among team representative about
when and what to do. Otherwise, it would point to chaos and project failure. This
problem can be defined by using an example. Suppose a software development issue is
divided into various parts and the parts are assigned to the team members. From then
on, suppose the team representative is allowed the freedom to develop the roles
assigned to them in whatever way they like. It is possible that one representative might
start writing the code for his part, another might choose to prepare the test documents
first, and some other engineer might begin with the design phase of the roles assigned
to him. This would be one of the perfect methods for project failure.
A software life cycle model describes entry and exit criteria for each phase. A
phase can begin only if its stage-entry criteria have been fulfilled. So without a
software life cycle model, the entry and exit criteria for a stage cannot be recognized.
Without software life cycle models, it becomes tough for software project managers to
monitor the progress of the project.
Once the requirement analysis is done, the next stage is to certainly represent and
document the software requirements and get them accepted from the project
stakeholders.
This is accomplished through "SRS"- Software Requirement Specification
document which contains all the product requirements to be constructed and
developed during the project life cycle.
The next phase is about to bring down all the knowledge of requirements, analysis,
and design of the software project. This phase is the product of the last two, like
inputs from the customer and requirement gathering.
In this phase of SDLC, the actual development begins, and the programming is
built. The implementation of design begins concerning writing code.
Developers have to follow the coding guidelines described by their management
and programming tools like compilers, interpreters, debuggers, etc. are used to
develop and implement the code.
Stage5: Testing
After the code is generated, it is tested against the requirements to make sure that
the products are solving the needs addressed and gathered during the requirements
stage.
During this stage, unit testing, integration testing, system testing, acceptance
testing are done.
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is deployed.
Then based on the assessment, the software may be released as it is or with
suggested enhancement in the object segment. After the software is deployed, then
its maintenance begins.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real issues come
up and requirements to be solved from time to time. This procedure where the care
is taken for the developed product is known as maintenance.
The exact number of phases needed to develop the product can be varied by the project
manager depending upon the project risks.
As the project manager dynamically determines the number of phases, the project
manager has an important role in developing a product using the spiral model.
It is based on the idea of a spiral, with each iteration of the spiral representing a
complete software development cycle, from requirements gathering and analysis to design,
implementation, testing, and maintenance.
The Spiral Model is a risk-driven model, meaning that the focus is on managing risk
through multiple iterations of the software development process. It consists of the following
phases:
Planning
o The first phase of the Spiral Model is the planning phase, where the scope
of the project is determined and a plan is created for the next iteration of the
spiral.
Risk Analysis
o In the risk analysis phase, the risks associated with the project are identified
and evaluated.
Engineering
o In the engineering phase, the software is developed based on the
requirements gathered in the previous iteration.
Evaluation
o In the evaluation phase, the software is evaluated to determine if it meets
the customer’s requirements and if it is of high quality.
Planning
o The next iteration of the spiral begins with a new planning phase, based on
the results of the evaluation.
The Spiral Model is often used for complex and large software development projects,
as it allows for a more flexible and adaptable approach to software development. It is also
well-suited to projects with significant uncertainty or high levels of risk.
The Radius of the spiral at any point represents the expenses(cost) of the project so far,
and the angular dimension represents the progress made so far in the current phase.
Each phase of the Spiral Model is divided into four quadrants as shown in the above
figure. The functions of these four quadrants are discussed below:
It shows the attributes, classes, functions, and relationships to give an overview of the
software system. It constitutes class names, attributes, and functions in a separate
compartment that helps in software development. Since it is a collection of classes, interfaces,
associations, collaborations, and constraints, it is termed as a structural diagram.
CHAPTER: 6
DATA DICTIONARY
6.1 Introduction
6.1 List of Tables
6.1.1: user_master
6.1.2: admin_master
6.1.3: police_incharge_master
6.1.4: police_master
6.1.5: complaint_master
6.1.6: csr_master
6.1.7: fir_master
6.1.8: police_station_master
6.1.9: rank_master
6.1.10: district_master
6.1.11: state_master
6.1.12: crime_category_master
6.1.13: announcement_master
6.1.14: feedback_master
6.1Introduction
Data Dictionary is an important part of a project or system which contains all
definition of elements in the system. In Data Dictionary you will find a list of all
elements composing the data flowing through a system.
The major elements of a system:
o Data Flow
o Data Store
o Processes
The data dictionary stores all details and description of these elements.
The data dictionary provides additional information about the system.
The data dictionary contains the data about data e.g. Student is a data and this
student belongs to this course is a description of STUDENT data which is
stored in data dictionary.
Why is Data Dictionary important?
o To manage the details in large system.
o To communicate a common meaning for all system elements.
o To document the features of system.
o To determine where system changes should made.
o To locate errors and omissions in the system.
6.2.2: admin_master
6.2.3: police_incharge_master
6.2.4: police_master
6.2.5: complaint_master
6.2.6: csr_master
6.2.7: fir_master
6.2.8: police_station_master
6.2.9: rank_master
6.2.10: district_master
6.2.11: state_master
6.2.12: crime_category_master
6.2.13: announcement_master
6.2.14: feedback_master
4:rejected, 5:solved,
6:reopen
Defines the crime
crime_category_id Integer Foreign key, NN category.
Other reasons for delay in
other_cc_delay_reason String(100) case closure.
Information about
evidence_image_info_by_stati evidence images provided
on_incharge by the station in-charge.
User who created the
created_by Datetime Not Null record.
User who updated the
updated_by Integer record.
Timestamp of the last
updated_at Datetime update.
station_id Integer Primary Key, Auto Stores the police station id.
police station.
rank_id Integer Primary Key, Auto Stores the police rank id.
Increment
rank_name Varchar(100) Not Null Stores the name of the
police rank.
CHAPTER:7
TESTING
7.1Testing Plan
7.2 Testing Strategies
7.3 Testing Method
7.4 Test Case
7.1Testing Plan
Great! Let's outline a detailed testing plan. Since you haven't specified the exact product or
system you're testing, I'll provide a generic outline that you can adapt to your specific needs.
Here's a structured testing plan:
Introduction:
o Provide an overview of the testing plan.
o Include the objectives, scope, and key stakeholders.
Purpose:
o Define the purpose of testing.
o Clarify what aspects of the product/system will be tested.
Scope:
o Describe the boundaries of the testing.
o Identify the features, functionalities, or components included in the scope.
o Mention any excluded items or functionalities.
Testing Goals:
o List the specific goals or objectives of the testing.
o These goals should align with the overall project objectives and stakeholder
requirements.
Testing Strategy:
o Outline the overall testing approach.
o Specify the types of testing to be conducted (e.g., functional testing, usability
testing, performance testing, security testing).
o Describe any testing methodologies or frameworks to be followed (e.g., Agile,
Waterfall, DevOps).
Test Deliverables:
o List the documents, reports, or artifacts that will be produced during testing.
o Include items such as test plans, test cases, test scripts, and test reports.
Testing Environment:
o Specify the hardware, software, and network configurations required for
testing.
Documentation:
o Document any changes or updates to the testing plan.
o Maintain a version history for reference.
Conclusion:
o Summarize the key points of the testing plan.
o Confirm alignment with project goals and stakeholder expectations.
Appendices:
o Include any supplementary information or reference materials relevant to the
testing plan.
Once you've drafted your testing plan, be sure to review it with your team and stakeholders to
ensure clarity, alignment, and agreement before proceeding with testing activities.
7.2Testing Strategies
Testing strategies are crucial for ensuring that the testing process is efficient, thorough, and
effective. Here's a detailed breakdown of various testing strategies:
Unit Testing:
o Definition: This strategy involves testing individual components or units of
code in isolation.
o Focus: It verifies the correctness of each unit's behavior and functionality.
o Approach: Developers typically write unit tests using testing frameworks like
JUnit (for Java), NUnit (for .NET), or pytest (for Python).
o Benefits: Unit testing helps identify defects early in the development cycle and
promotes code modularity and reusability.
Integration Testing:
o Definition: Integration testing verifies the interactions between different units
or modules within the system.
o Focus: It ensures that integrated components work together as expected.
o Approach: Integration tests can be conducted using techniques such as top-
down, bottom-up, or a combination of both.
o Benefits: Integration testing detects interface defects and integration issues
early, reducing the risk of major failures during system testing.
System Testing:
o Definition: System testing evaluates the entire system as a whole, including all
integrated components.
o Focus: It validates the system against its functional and non-functional
requirements.
o Approach: System testing can include functional testing, usability testing,
performance testing, security testing, and more.
o Benefits: System testing ensures that the software meets user expectations and
performs reliably in its intended environment.
Acceptance Testing:
o Definition: Acceptance testing determines whether the system meets the
acceptance criteria defined by stakeholders.
o Focus: It validates the system from the end-user's perspective and assesses its
readiness for deployment.
o Approach: Acceptance testing can be performed using techniques such as alpha
testing, beta testing, or user acceptance testing (UAT).
o Benefits: Acceptance testing ensures that the software satisfies business
requirements and aligns with user needs.
Regression Testing:
o Definition: Regression testing verifies that recent code changes have not
adversely affected existing functionality.
o Focus: It ensures that previously tested features still work correctly after
modifications or enhancements.
o Approach: Automated regression testing tools can help efficiently re-run
existing test cases to detect regressions.
o Benefits: Regression testing helps maintain software quality and prevents the
introduction of unintended defects during development.
Exploratory Testing:
o Definition: Exploratory testing involves simultaneous learning, test design, and
test execution.
o Focus: Testers explore the application dynamically, uncovering defects and
potential use cases.
o Approach: Testers rely on their domain knowledge and intuition to design and
execute tests on-the-fly.
o Benefits: Exploratory testing is effective for finding defects that may not be
identified through scripted tests and encourages creative and flexible testing
approaches.
Risk-Based Testing:
o Definition: Risk-based testing prioritizes testing efforts based on the likelihood
and impact of potential failures.
o Focus: It focuses testing resources on high-risk areas of the system.
o Approach: Risk analysis techniques, such as Failure Mode and Effects Analysis
(FMEA), help identify critical areas for testing.
o Benefits: Risk-based testing optimizes testing efforts by directing resources
where they are most needed, reducing the likelihood of high-impact failures.
Load Testing:
o Definition: Load testing evaluates the system's performance under expected and
peak load conditions.
o Focus: It assesses how the system handles concurrent user activity and data
processing.
o Approach: Load testing tools simulate high-volume traffic to measure system
response times, throughput, and scalability.
o Benefits: Load testing identifies performance bottlenecks, helps optimize
resource utilization, and ensures the system can handle expected workloads.
Security Testing:
o Definition: Security testing identifies vulnerabilities and weaknesses in the
system's security controls.
o Focus: It evaluates the system's ability to protect data, prevent unauthorized
access, and resist attacks.
o Approach: Security testing includes techniques such as penetration testing,
vulnerability scanning, and code reviews.
o Benefits: Security testing helps mitigate security risks, safeguard sensitive
information, and maintain the integrity of the system.
Usability Testing:
o Definition: Usability testing assesses the system's user interface and user
experience (UI/UX).
o Focus: It evaluates how easily users can interact with the system and
accomplish their tasks.
o Approach: Usability testing involves observing real users as they interact with
the system and collecting feedback through surveys or interviews.
o Benefits: Usability testing identifies usability issues, improves user satisfaction,
and enhances the overall user experience.
Each of these testing strategies plays a critical role in ensuring the quality, reliability, and
performance of software systems. The selection and combination of testing strategies depend
on factors such as project requirements, constraints, and risks. It's essential to tailor the testing
approach to the specific needs of the project and continuously adapt it throughout the software
development lifecycle.
7.2Testing Method
Testing methods refer to the specific approaches or techniques used to conduct testing
activities. These methods help ensure thorough coverage, accuracy, and effectiveness in
validating the software's functionality, performance, and other quality attributes. Here are
some common testing methods:
o Approach: Test cases are designed based on an understanding of the code, control
flow, and data flow within the software.
o Benefits: White box testing provides insights into code coverage, control flow, and
error handling, helping identify issues related to code execution and logic.
Gray Box Testing:
o Description: Gray box testing combines elements of both black box and white box
testing. Testers have partial knowledge of the internal workings of the software.
o Approach: Test cases are designed based on a limited understanding of the internal
code or structure, allowing testers to target specific areas of interest.
o Benefits: Gray box testing leverages both external and internal perspectives,
providing a balance between test coverage and depth.
Manual Testing:
o Description: Manual testing involves human testers executing test cases manually
without the use of automation tools.
o Approach: Testers interact with the software interface, input data, and observe
outputs to validate its behavior.
o Benefits: Manual testing allows for exploratory testing, subjective evaluation of
user experience, and validation of complex scenarios that may be challenging to
automate.
Automated Testing:
o Description: Automated testing involves the use of software tools to execute pre-
scripted tests, compare actual outcomes with expected results, and generate test
reports.
o Approach: Test scripts are created to automate repetitive test scenarios, regression
tests, and performance tests.
o Benefits: Automated testing improves efficiency, repeatability, and coverage of
testing activities, especially for large-scale projects and continuous integration
pipelines.
Static Testing:
o Description: Static testing focuses on reviewing code, requirements, and
documentation without executing the software.
These testing methods can be combined and adapted based on project requirements,
constraints, and goals. Effective testing often involves a combination of multiple methods to
achieve comprehensive coverage and ensure software quality.
Test Case ID: A unique identifier for the test case, usually in the form of a combination of
letters and numbers.
Test Case Title/Name: A descriptive title or name that summarizes the purpose or
objective of the test case.
Description: A brief description or summary of what the test case is intended to achieve.
Preconditions: Any prerequisites or conditions that must be met before executing the test
case, such as system configurations, data setup, or user permissions.
Test Steps: A sequence of step-by-step instructions outlining the actions to be performed
to execute the test case. Each step should be clear, concise, and unambiguous.
Input Data: The specific data values, parameters, or inputs that will be used during the
test execution.
Expected Results: The expected outcomes or behaviors that the system should exhibit
when the test case is executed successfully. This includes both observable results and
system responses.
Actual Results: The actual outcomes observed during test execution. Testers record the
results obtained after executing the test steps.
Pass/Fail Criteria: Criteria used to determine whether the test case passes or fails based
on a comparison between the actual results and the expected results.
Priority: The priority level assigned to the test case, indicating its relative importance or
urgency in the testing process.
Severity: The severity level assigned to the test case, indicating the impact of a failure on
the system or its users. Common severity levels include critical, major, minor, and trivial.
Test Environment: Information about the test environment, including hardware, software,
configurations, and dependencies required for test execution.
Test Data: Any additional test data or conditions relevant to the test case, such as
boundary values, edge cases, or negative scenarios.
Attachments/References: Any supporting documents, screenshots, logs, or references
that provide additional context or details for the test case.
Notes/Comments: Any additional notes, comments, or observations relevant to the test
case, such as insights, assumptions, or recommendations.
By documenting test cases in a structured and standardized format, teams can ensure
consistent testing practices, facilitate test execution, and maintain comprehensive test coverage
throughout the software development lifecycle. Additionally, well-written test cases serve as
valuable documentation for future reference, regression testing, and knowledge transfer within
the team.
CHAPTER: 8
SNAPSHOT OF WEBSITE
CHAPTER: 9
ADVANTAGES
9.1 Advantages
9.1 Limitations
9.1 Advantages:
An online crime reporting system offers several advantages compared to traditional methods
of reporting crimes:
Convenience: People can report crimes from anywhere with an internet connection,
eliminating the need to travel to a police station. This convenience encourages more
individuals to report crimes promptly.
Accessibility: Online systems are available 24/7, allowing people to report crimes at any
time. This accessibility ensures that law enforcement agencies receive timely information,
potentially leading to faster responses and investigations.
Efficiency: Reports submitted online can be processed more quickly and efficiently
compared to traditional paper-based reports. This efficiency saves time for both the
reporting individual and law enforcement personnel.
Data Analysis: Digital reports can be easily stored, analyzed, and searched, providing
valuable data for identifying crime trends, allocating resources, and developing crime
prevention strategies.
Multimedia Support: Online systems typically allow users to upload multimedia files
such as photos, videos, or documents as evidence. This additional information can enhance
the accuracy and comprehensiveness of crime reports.
Cost-Effectiveness: By reducing the need for physical paperwork and manual data entry,
online reporting systems can help streamline administrative processes and reduce overall
operational costs for law enforcement agencies.
Integration with Other Systems: Online crime reporting systems can be integrated with
other law enforcement databases and systems, facilitating information sharing and
collaboration between different agencies and jurisdictions.
9.1 Limitations:
Online crime reporting systems offer numerous advantages, they also have some limitations:
Digital Divide: Not everyone has access to the internet or the necessary digital literacy
skills to use online reporting systems. This can create disparities in reporting rates, with
certain demographics or communities being underrepresented.
Reporting Bias: Online reporting systems may attract certain types of crimes or reports
more than others, potentially leading to skewed data and inaccurate representations of
crime patterns. For example, individuals may be more likely to report minor offenses
online while serious crimes go unreported.
Verification Challenges: Verifying the authenticity and accuracy of online crime reports
can be challenging, particularly when reports are submitted anonymously or lack sufficient
evidence. False or exaggerated reports can strain law enforcement resources and
undermine the credibility of the reporting system.
Privacy Concerns: Despite measures to protect anonymity, individuals may still have
concerns about the privacy and security of their personal information when submitting
reports online. Fear of data breaches or unauthorized access may deter some people from
using online reporting systems.
Language and Accessibility Barriers: While online systems can support multiple
languages, language barriers may still exist for individuals who are not proficient in the
languages offered. Additionally, people with disabilities may encounter accessibility issues
when using online platforms, such as screen reader compatibility or complex user
interfaces.
CHAPTER: 10
CONCLUSION AND FUTURE ENHANCEMENT
10.1 Conclusion
10.1 Future Enhancement
10.1 Conclusion
In conclusion, online crime reporting systems offer valuable benefits such as
convenience, accessibility, anonymity, and efficiency. These systems enhance community
engagement, data analysis capabilities, and resource allocation for law enforcement agencies.
However, they also come with limitations including the digital divide, reporting bias,
verification challenges, privacy concerns, and trust issues.
Despite these limitations, online crime reporting systems represent a significant step
forward in modernizing law enforcement practices and fostering collaboration between the
public and the police. By addressing these challenges through continuous improvement,
transparency, and community outreach efforts, online reporting systems can play a vital role in
enhancing public safety, reducing crime, and promoting trust and confidence in the criminal
justice system.
User Interface Optimization: Continuously refining the user interface to make it more
intuitive and accessible for diverse user groups, including those with disabilities or limited
digital literacy.
Integration with Mobile Platforms: Developing dedicated mobile applications for
reporting crimes, allowing users to submit reports conveniently from their smartphones
with features like geolocation tagging and multimedia uploads.
Real-Time Communication: Implementing features for real-time communication
between reporting individuals and law enforcement personnel, enabling prompt follow-up
questions, updates on case status, and feedback mechanisms.
Artificial Intelligence and Machine Learning: Incorporating AI and machine learning
algorithms to automate report classification, prioritize responses based on severity or
urgency, and identify patterns or trends in crime data more effectively.
BIBLIOGRAPHY
a. Course Outcome
b. Books
c. Web Reference
a. Course Outcome
b. Books:
Fundamental of Software Engineering
o Author: Rajib Mall
Introduction to Computation and Programming Using Python
o Author: John V Guttag
Core Python Programming
o Author: R. Nageswara Rao
SQL Server Database
o Author: Mr.Gaurav Desani
SQLite Forensics
o Author: Paul Sanderson
c. Web Reference:
W3Schools. "CSS Tutorial." [Online].
o Available: https://www.w3schools.com/css/default.asp.. [Accessed: February 1,
2024].
W3Schools. "JavaScript Tutorial." [Online].
o Available: https://www.w3schools.com/js/default.asp. [Accessed: February 7,
2024].
Javatpoint. “Node JS Tutorial.”
o [Online] Available: https://www.javatpoint.com/nodejs-tutorial. [Accessed:
February 21, 2024].
Free Code Camp. "Learn to code — for free." [Online].
o Available: https://www.freecodecamp.org/ [Accessed: March 15, 2024].
Stack Overflow. "Where Developers Learn, Share, & Build Careers." [Online].
o Available: https://stackoverflow.com/ [Accessed: April 2, 2024]