0% found this document useful (0 votes)
25 views57 pages

CPP Report

The Online Gate Pass Management System is a digital solution aimed at automating the process of issuing and monitoring gate passes within organizations, enhancing efficiency, security, and accountability. It allows users to apply for passes through a user-friendly interface, with requests reviewed by authorized personnel, and incorporates features like real-time notifications and QR code verification. The system ultimately aims to improve campus security, streamline administrative processes, and maintain transparent records of movements in and out of the premises.

Uploaded by

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

CPP Report

The Online Gate Pass Management System is a digital solution aimed at automating the process of issuing and monitoring gate passes within organizations, enhancing efficiency, security, and accountability. It allows users to apply for passes through a user-friendly interface, with requests reviewed by authorized personnel, and incorporates features like real-time notifications and QR code verification. The system ultimately aims to improve campus security, streamline administrative processes, and maintain transparent records of movements in and out of the premises.

Uploaded by

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

ABSTRACT

The Online Gate Pass Management System is a digital solution designed to streamline and automate the
process of issuing, approving, and monitoring gate passes within an organization, such as a college,
company, or residential society. The system replaces traditional manual methods, ensuring improved
efficiency, security, and accountability.

Through a user-friendly web or mobile interface, users such as students, employees, or residents can
apply for gate passes by submitting required details and supporting documents. These requests are then
reviewed and approved or rejected by authorized personnel such as wardens, managers, or security
officers.

The system incorporates real-time notifications, automated logs, and access control features to ensure
secure and traceable movement of individuals or goods. Admins can monitor activity through dashboards
and reports, and security personnel can verify passes using QR codes or unique IDs.

By minimizing paperwork and human error, the Online Gate Pass Management System enhances
operational transparency, saves time, and provides a scalable and reliable platform for gate management.
RATIONALE

The rationale for implementing a College Gatepass Management System revolves around several key
factors that aim to improve security, streamline administrative processes, and ensure the overall safety
and well-being of students and staff. Here are some important points that justify the need for such a
system:

1. Improved Security
- Control Over Movement: A gatepass system helps monitor and control the movement of students in
and out of the campus, ensuring that only authorized individuals can leave or enter. This is especially
critical in maintaining campus security, preventing unauthorized access, and ensuring students' safety.
- Emergency Management: In case of emergencies, the system can quickly identify which students are
on or off-campus, allowing for faster response times and better emergency management.

2. Accountability and Transparency


- Tracking and Auditing: A digital system maintains a clear record of each gatepass request, approval,
and movement. This provides transparency and accountability, reducing the chances of misuse, such as
unauthorized exits or falsified reasons for leaving.
- Parental Involvement: Notifications sent to parents or guardians can keep them informed about their
child’s whereabouts, adding an additional layer of accountability.

3. Efficiency in Administrative Processes


- Automation: Traditional paper-based systems for gatepass approval can be time-consuming and prone
to errors. By automating the process, the system reduces administrative workload, eliminates paperwork,
and speeds up the approval and tracking process.
- Faster Approvals: With a digital system, gatepass requests can be processed quickly, saving time for
both students and staff. The system can be designed to include automatic approvals for certain requests,
reducing manual intervention.
People Detection and Counting System

CHAPTER 1
INTRODUCTION

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 1
People Detection and Counting System

INTRODUCTION

The College Gatepass Project is developed to streamline the process of monitoring and managing
student attendance as well as the movement of students, staff, visitors, and resources in and out of the
college campus. The primary goals of the project are to enhance campus security, ensure student
accountability, and support efficient campus administration.

With the advancement of technology in the 21st century, numerous smart tools and applications have
emerged to simplify daily life. In this context, university safety stands out as a key area that must be
prioritized. Leveraging modern technology in this project aims to protect students, efficiently record their
movement at the campus gates, track visitor activity, and monitor the movement of institutional resources.
Despite the presence of a manual record-keeping system in many institutions, it has proven to be
inefficient and unreliable.
Important documents and records are often misplaced or lost, especially when needed urgently by the
administration. This can lead to confusion, data inaccuracy, and delayed decisions.
The digital gatepass system ensures that all movement records of students, visitors, and materials
crossing the college premises are stored securely and can be accessed easily. These records are crucial for
making informed decisions, conducting security audits, and responding effectively to emergencies.
By replacing the traditional manual processes with a centralized, automated system, the College
Gatepass Project contributes to building a secure, smart, and well-managed campus environment.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 2
People Detection and Counting System

CHAPTER 2
LITERATURE SURVEY

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 3
People Detection and Counting System

LITERATURE SURVEY

1. The Gate-Pass Management system by applying the model of UTAUT was


discussed by Norizan Anwar, Mohamad Noorman:

 The Online Gate Pass Management System is a digital solution designed to streamline and
automate the process of issuing, approving, and monitoring gate passes within an organization,
such as a college, company, or residential society. The system replaces traditional manual
methods, ensuring improved efficiency, security, and accountability.

 Through a user-friendly web or mobile interface, users such as students, employees, or residents
can apply for gate passes by submitting required details and supporting documents. These
requests are then reviewed and approved or rejected by authorized personnel such as wardens,
managers, or security officers.

 The system incorporates real-time notifications, automated logs, and access control features to
ensure secure and traceable movement of individuals or goods. Admins can monitor activity
through dashboards and reports, and security personnel can verify passes using QR codes or
unique IDs.

2. Another system for Visitor Pass was discussed in the paper by Prof. Abhay
Gaidhani, Suraj Sahijwani, Parag Jain, Shantanu:

 Visitor gate-pass management system is designed to replace traditional visitor registration and
visitorinformation management activities in the premises, with this system we will able to
expedite the visitor registration process,

 determine who is still inside of the premises after meeting and notify to the system. This is a
review paper in which systemsolves the problem of appointments and it electively capturing all-
relevant information about the visitors and that

 information is recorded in centralized database server, which provides data management and
manipulation throughsearching for future purposes in the organization. The benefits of Visitor
Gate pass Management System( VGMS) isenhancing the level of security enforced in premises,
providing an organized view of visitor records and reducing the time

 spent on managing visitor information.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 4
People Detection and Counting System

3. Digital Visitor Information Management System (VIMS) Application and


Design. This application enables capturing new:

 Visitor’s Management System (VMS) is a web-application through which the administrator can
collect details of the visitors for any organization like (apartments, quarters or colonies).

 It tracks the records and information of the visitors who visits particular apartment’s – floor &
room number including the visit time and checkout time. This system can be used as access
control system for any building or multiple

 buildings (colonies). Bringing ease to the manual report based accountability system for tracking
people who are visitors, this automated electronic based system becomes more powerful and
versatile with much more functionality

 domination the prevailing primitive tracking system.With the principle to record the data
electronically the system makes it easier to track records in an easy way

 generating reports for various modes of tracking e.g. (tracking particular visitor,
daily/monthly/yearly record ofvisitors) also with other modes of tracking which enhances

 the security and accountability of the building making a strong management for people who just
visits but not reside permanently

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 5
People Detection and Counting System

4. Face Recognition Based Gate Pass System:

 A software application based on facial recognition is used to create a gate pass system. During
college hours, it coordinates the student's gate pass request and leave. This system is ready for use
and is simple to operate and manage. A gate pass security system is what this system is called. Its
main goal is to keep the campus safe from outside visitors and to keep track of permissions.

 The Face Recognition based Gate pass system assists both the organization and the guest in
managing their Gate passes. We can quickly enter the entry and exit of a student, teacher, and
unknown guests using the gate pass system. One of the many benefits of employing this system is
that all of a person's entry and departure records are stored and accessible.

 This system is simple to use. The goal of the project 'Face Recognition based Gate-pass System'
is to keep track of the user's information and actions. It streamlines the process and reduces
paperwork. We are providing the electronic version of the paper gate pass.

5. Automated Gate Pass System Developmen:

 Surveillance cameras are necessary to find and track a person in the technology world for
various security purposes. The work aims to design an auto gate pass system using face
recognition technology based on real-time video processing.

 Various photographs of the student at different environmental conditions have been collected
and stored in the database. While exiting from the campus students need to show their face in
front of the camera and the proposed system recognizes the student by comparing the details
stored in the database.

 After recognizing a student, the next step is to fetch the student's record from the database
and make the entry of a person into e-register. Meanwhile, the automated system will send a
notification to the respective student. To track the whole action, the system provides a
graphical user interface (GUI), which helps to monitor all activities more easily..

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 6
People Detection and Counting System

CHAPTER 3
SCOPE OF
PROJECT

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 7
People Detection and Counting System

College Gatepass Management System: Scope

A College Gatepass Management System

It is a digital solution designed to manage and streamline the process of granting and
monitoring student gatepasses in educational institutions. Traditionally, students must obtain
manual approval from faculty or administrative staff to leave the campus during college
hours.This process is often time-consuming, inefficient, and prone to errors or misuse.
By digitizing this system, institutions can ensure a more secure, transparent, and organized
process for student movement. The gatepass management system allows students to request
passes online, which can then be approved or rejected by authorized personnel. Security staff
can verify approved passes using digital methods such as ID verification or QR code scanning,
reducing the likelihood of unauthorized exits.

Key Features:

1. Student Login and Request Module:

o Students can log in using their college credentials.


o They can submit a gatepass request specifying the reason, date, and time of departure.

2. Admin/Faculty Approval:

o Faculty or staff members can view and manage incoming gatepass requests.
o Each request can be approved, rejected, or set to pending based on institutional policies.

3. Notification System:

o Students receive real-time updates via SMS or email once their request is processed.
o Parents or guardians can optionally be informed for safety and transparency.

4. Security Verification:

o Approved gatepasses can be shown at the gate, either printed or on a mobile device.
o Security staff can verify the pass using QR codes or digital dashboards.

5. Record Maintenance:

o All gatepass records are stored in a centralized database for future reference.
o Admins can view historical data, generate reports, and monitor trends.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 8
People Detection and Counting System

Goal:
The primary goal of the College Gatepass Management System is to digitize and streamline the process
of managing student gatepass requests, ensuring a more efficient, secure, and transparent method
for handling student movements in and out of the campus.

This system aims to:

 Automate the gatepass approval process, reducing manual paperwork and delays.

 Enhance campus security by ensuring only authorized students can exit the premises.

 Provide real-time updates to students and staff regarding the status of gatepass requests.

 Maintain digital records for all gatepass transactions for easy tracking and reporting.

 Improve communication between students, faculty, security personnel, and (optionally)


parents or guardians.

By achieving these objectives, the system supports better administrative control, student discipline, and
campus safety through the use of modern technology.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 9
People Detection and Counting System

CHAPTER 4
DEFINITION

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 10
People Detection and Counting System

PROBLEM DEFINITION

 Implement system which detects entry and exit of students.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 11
People Detection and Counting System

CHAPTER 5
METHODOLOGY

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 12
People Detection and Counting System

METHODOLOGY

1. Admin Login:
o In In this module, the admin user enters username and password
o . These details are checked against the ‘admin’ table and if matched login is made.
Otherwise invalid username message will be displayed.

2. Staff Entry:
o This module is used for storing the staff information.
o The details such as staff id, name, department, contact no, email id and
password are stored in the table.
o These details are stored in the staff table with the help of sql.

3. Student Entry:
o This module is used for storing the student information.
o The details such register no., name, department, image, contact no, email id and
password are stored in the table.
o These details are stored in the student table with the help of SQL.

4. Staff Information:
o This module is used to view the staff information. Here admin will just select a picture
from staff folder.
o Once the submit button has been clicked, the details regarding the person will be
displayed.
o The details such as staff id, name, department, contact no, email id and password are
viewed from staff table.

5. Student Information:
o This module is used to view the student information. Here admin will just select a
picture from student folder
o Once the submit button has been clicked, the details regarding the person will be
displayed.
o The details such as register no., name, department, image, contact no, email id and
password are viewed from students table.
.
6. Staff Login:
o In this module, the staff user enters staff id and password. These details are checked
against the ‘staff’ table and if matched login is made. Otherwise invalid staff id message
will be displayed

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 13
People Detection and Counting System

7. Add Gate Pass Request :


o This module is used to add the gate pass information.
o The details such as register no., name, user id, department, entry date, on date, duration
and reason are added to gate pass table.
o Then approval or rejected can be made after viewed by admin.

8. Gate pass Request List:


o This module is used to view the gate pass information.
o The details such as register no., name, staff id, department, entry date, on date, duration,
reason and status are viewed from gate pass table

9. Add Gate Pass Request:


o This module is used to add the gate pass information. The details such as register no.,
name, staff id, department, entry date, on date, duration and reason are added to gate pass
table. Then approval or rejected can be made after viewed by admin.

10.Student Login:
o In this module, the student user enters register no. and password. These details are
checked against the ‘student’ table and if matched login is made. Otherwise invalid
register no. message will be displayed.

11.Student Module Registation:

o This module is used for storing the student information.


o The details such register no., name, department, image, contact no, email id and password
are stored in the table.
o These details are stored in the student table with the help of SQL.
By following this methodology College Gatepass Management System System ensures accurate,
real- time, and automated crowd monitoring, making it valuable for security, retail analytics, and
smart city applications.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 14
People Detection and Counting System

DATA FLOW DIAGRAM

Fig. Dataflow Diagram: People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 15
People Detection and Counting System

USE CASE DIAGRAM

Fig. Use Case Diagram: People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 16
People Detection and Counting System

ACTIVITY DIAGRAM

Fig. Activity Diagram: People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 17
People Detection and Counting System

RESOURCES & CONSUMABLES REQUIRED

Minimum HARDWARE REQUIREMENTS

o System: 11th Gen Intel(R) Core (TM) i3-1115G4 @ 3.00GHz


o Hard Disk: 512 GB.
o Ram: 16.00 GB
o Smartphone or Mobile Device

Minimum SOFTWARE REQUIRMENTS


o Operating system: Windows 11
o Language: Dart
o Virtual Device phone
o Firebase

Libraries & Frameworks:


 Flutter Framework
o Front-end: Dart
o Back-end: Firebase Console
o IDE: Android studio

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 18
People Detection and Counting System

CHAPTER 6
CODE & OUTPUT

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 19
People Detection and Counting System

options: DefaultFirebaseOptions.currentPlatform,);
Code : FirebaseMessaging messaging = FirebaseMessaging.instance;
Main:-
FirebaseMessaging.onBackgroundMessage(firebaseBackgroundH
andler);
import 'package:firebase_messaging/firebase_messaging.dart'; await messaging.requestPermission();
import 'package:flutter/material.dart'; runApp(MyApp());
import 'package:getpass/Flash.dart'; }
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart'; class MyApp extends StatelessWidget{
Widget build(BuildContext context) {
@pragma('vm:entry-point') return MaterialApp(
Future<void> firebaseBackgroundHandler(RemoteMessage title: "Get Pass",
message) async { home: Flash(),
await Firebase.initializeApp(options: debugShowCheckedModeBanner: false,
DefaultFirebaseOptions.currentPlatform,); );
} }
Future<void> main() async { }
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
LoginForm:-
import 'package:flutter/material.dart'; const SizedBox(height: 30,),
import 'package:getpass/Login/StudentLogin.dart'; Container(
import 'package:getpass/Login/TeacherLogin.dart'; height: 55,width: 190,
import 'package:google_fonts/google_fonts.dart'; decoration: BoxDecoration(color: const
Color(0xff80C4E9),borderRadius: BorderRadius.circular(30)),
class LoginOption extends StatelessWidget { child: TextButton(
Widget build(BuildContext context) { child: Text("Login as Student",style:
return Scaffold( GoogleFonts.albertSans(color: Colors.white,fontSize: 17,fontWeight:
backgroundColor: Colors.white, FontWeight.w600)),
body: ListView( onPressed: (){
children: [ Navigator.push(context, MaterialPageRoute(builder:
Column( (builder){
mainAxisAlignment: MainAxisAlignment.start, return StudentLogin();
crossAxisAlignment: CrossAxisAlignment.center, }));
children: [ }
const SizedBox(height: 100,), ),
Padding( ),
padding: const EdgeInsets.all(5), const SizedBox(height: 20,),
child: Container( Container(
height: 120,width: 120, height: 55,width: 190,
decoration: BoxDecoration(image: const decoration: BoxDecoration(color: const
DecorationImage(image: Color(0xff6A9C89),borderRadius: BorderRadius.circular(30)),
AssetImage("assets/images/vvplogo.jpg"),fit: BoxFit.fill), child: TextButton(
borderRadius: BorderRadius.circular(50)), child: Text("Login as Admin",style:
), GoogleFonts.albertSans(color: Colors.white,fontSize: 17,fontWeight:
), FontWeight.w600)),
Text("VVPPS Get Pass",style: onPressed: (){
GoogleFonts.audiowide(fontSize: 20),), Navigator.push(context, MaterialPageRoute(builder:
const SizedBox(height: 30,), (builder){
Text("Welcome to the College Get Pass return Teacherlogin();
application",style: TextStyle(fontSize: 16,color: }));
Colors.black.withOpacity(0.5),fontWeight: FontWeight. },
// Text("Select your login type to proceed.",style: ),
TextStyle(fontSize: 16,color: ),
Colors.black.withOpacity(0.5),fontWeight: FontWeight.w600),), SizedBox(height: 90,),
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 20
People Detection and Counting System
Text("Note",style: TextStyle(fontSize: 15,color: final _key=GlobalKey<FormState>();
Colors.red.withOpacity(0.9),fontWeight: FontWeight.w600
SizedBox(height: 8,), Widget build(BuildContext context) {
Text("This software is developed for only limited return Scaffold(
users.",style: TextStyle(fontSize: 14,color: body: ListView(
Colors.black.withOpacity(0.4),fontWeight: FontWeight. children: [
SizedBox(height: 5,), Form(
Text("Registration phase isn't available, to register your key: _key,
id please contact head of department.",textAlign: child: Column(
TextAlign.center, children: [
style: TextStyle(color: const SizedBox(height: 160,),
Colors.red.withOpacity(0.6),fontSize: 14,fontWeight: Padding(
FontWeight.w600),), padding: const EdgeInsets.all(5),
SizedBox(height: 7,), child: Container(
Row( height: 100,width: 100,
mainAxisAlignment: MainAxisAlignment.center, decoration: BoxDecoration(image: const
children: [ DecorationImage(image:
Icon(Icons.call,color: AssetImage("assets/images/studentpfp.png"),fit: BoxFit.fill),
Colors.black.withOpacity(0.5),size: 20,), borderRadius: BorderRadius.circular(60)),
SizedBox(width: 8,), ),
Text("9356434349",style: TextStyle(fontSize: ),
15,color: Colors.blueAccent.withOpacity(0.6),fontWeight: const SizedBox(height: 3,),
FontWeight.w600),), Text("Student Login",style:
], GoogleFonts.albertSans(fontSize: 22, fontWeight:
) FontWeight.w600),),
], const SizedBox(height: 30,),
) Padding(
], padding: const EdgeInsets.fromLTRB(30, 0, 30, 0),
), child: TextFormField(
); keyboardType: TextInputType.emailAddress,
} decoration: InputDecoration(contentPadding: const
EdgeInsets.symmetric(horizontal: 20, vertical: 15),hintText: "Email
} ID",border: OutlineInputBorder(borderRadius:
BorderRadius.circular(30),
borderSide: BorderSide.none),filled: true,fillColor:
StudentLogin:- Colors.grey.withOpacity(0.2),
import 'package:cloud_firestore/cloud_firestore.dart'; hintStyle: TextStyle(fontWeight:
import 'package:firebase_messaging/firebase_messaging.dart'; FontWeight.w500,color: Colors.black.withOpacity(0.5))),
import 'package:flutter/material.dart'; controller: emailController,
import 'package:getpass/StudentModules/StudBottomNav.dart'; validator: (value){
import 'package:getpass/Errro.dart'; if(value!.isEmpty || value==null){
import 'package:google_fonts/google_fonts.dart'; return "Enter valid email";
import 'package:firebase_auth/firebase_auth.dart'; } else {
return null;
class StudentLogin extends StatefulWidget { }
@override },
State<StudentLogin> createState() => _StudentLoginState(); ),
} ),
const SizedBox(height: 15,),
class _StudentLoginState extends State<StudentLogin> { Padding(
padding: const EdgeInsets.fromLTRB(30, 0, 30, 0),
final FirebaseAuth _auth=FirebaseAuth.instance; child: TextFormField(
CollectionReference keyboardType: TextInputType.visiblePassword,
ref=FirebaseFirestore.instance.collection('Students'); obscureText: pass?true:false,
final emailController=TextEditingController(); decoration: InputDecoration(contentPadding: const
final passController=TextEditingController(); EdgeInsets.symmetric(horizontal: 20, vertical: 15),hintText:
bool pass=true; "Password",border: OutlineInputBorder(borderRadius:
bool load=false; BorderRadius.circular(30),
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 21
People Detection and Counting System
borderSide: BorderSide.none),filled: true,fillColor:
builder: (context) => StudBottomNav()),
Colors.grey.withOpacity(0.2), (Route<dynamic> route) => false,);
hintStyle: TextStyle(fontWeight: } else {
FontWeight.w500,color: Colors.black.withOpacity(0.5)), Error().toastMessage("Invalid Email ID and
suffixIcon:Padding( Password");
padding: const EdgeInsets.only(right: 10), setState(() {
child: IconButton( load=false;
icon: pass? const Icon(Icons.lock_outline_rounded });
const Icon(Icons.lock_open_outlined), _auth.signOut();
onPressed: (){ }
setState(() { }).onError((error, stackTrace){
pass=pass?false:true; setState(() {
}); load=false;
}, });
), Error().toastMessage(error.toString());
)), });
controller: passController, } else {
validator: (value){ setState(() {
if(value!.isEmpty || value==null){ load=false;
return "Enter valid password"; });
} else { }
return null; },
} ),
}, )
), ],
), ),
const SizedBox(height: 25,), )
Container( ],
height: 50,width: 200, ),
decoration: BoxDecoration(color: );
Color(0xff80C4E9),borderRadius: BorderRadius.circular(30)), }
child: TextButton( }
child: load? const CircularProgressIndicator(color:TeacherLogin:-
Colors.white,)
:Text("Login",style: import 'package:cloud_firestore/cloud_firestore.dart';
GoogleFonts.albertSans(color: Colors.white,fontSize: import 'package:firebase_auth/firebase_auth.dart';
17,fontWeight: FontWeight.w700),), import 'package:firebase_messaging/firebase_messaging.dart';
onPressed: () async { import 'package:flutter/material.dart';
setState(() { import 'package:getpass/HODsModules/hodBottomnNav.dart';
load=true; import 'package:getpass/Principle/pBottomNav.dart';
}); import 'package:getpass/TeacherModules/TeaBottomNav.dart';
if(_key.currentState!.validate()) { import 'package:google_fonts/google_fonts.dart';
await _auth.signInWithEmailAndPassword( import 'package:getpass/Errro.dart';
email: emailController.text.toString(),
password: passController.text.toString() class Teacherlogin extends StatefulWidget {
).then((onValue) async { @override
DocumentSnapshot docData=await State<Teacherlogin> createState() => _TeacherloginState();
ref.doc(_auth.currentUser!.uid.toString()).get(); }
Map<String, dynamic> data=docData.data() as
Map<String, dynamic>; class _TeacherloginState extends State<Teacherlogin> {
if(data['userType']=="Student") {
String? token=await CollectionReference
FirebaseMessaging.instance.getToken(); ref=FirebaseFirestore.instance.collection('Teachers');
await ref.doc(_auth.currentUser!.uid).update({
CollectionReference
'fcmToken':token.toString() collectionReference=FirebaseFirestore.instance.collection('HODs');
}); CollectionReference
principle=FirebaseFirestore.instance.collection('Principle');
Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( final FirebaseAuth _auth=FirebaseAuth.instance;
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 22
People Detection and Counting System
decoration: InputDecoration(hintText:
final emailController=TextEditingController(); "Password",border: OutlineInputBorder(borderRadius:
final passController=TextEditingController(); BorderRadius.circular(30),
bool pass=true; borderSide: BorderSide.none),filled: true,fillColor:
bool load=false; Colors.grey.withOpacity(0.2),
final _key=GlobalKey<FormState>(); hintStyle: TextStyle(fontWeight:
FontWeight.w500,color: Colors.black.withOpacity(0.5)),
Widget build(BuildContext context) { suffixIcon:Padding(
return Scaffold( padding: const EdgeInsets.only(right: 10),
body: ListView( child: IconButton(
children: [ icon: pass? const Icon(Icons.lock_outline_rounded):
Form( const Icon(Icons.lock_open_outlined),
key: _key, onPressed: (){
child: Column( setState(() {
children: [ pass=pass?false:true;
const SizedBox(height: 160,), });
Padding( },
padding: const EdgeInsets.all(5), ),
child: Container( )),
height: 100,width: 100, controller: passController,
decoration: BoxDecoration(image: const validator: (value){
DecorationImage(image: if(value!.isEmpty || value==null){
AssetImage("assets/images/teacherpfp.png"),fit: BoxFit.fill), return "Enter valid password";
borderRadius: BorderRadius.circular(60)), } else {
), return null;
), }
const SizedBox(height: 3,), },
Text("Admin/Teacher Login",style: ),
GoogleFonts.albertSans(fontSize: 22, fontWeight: ),
FontWeight.w600),), const SizedBox(height: 25,),
const SizedBox(height: 30,), Container(
Padding( height: 50,width: 200,
padding: const EdgeInsets.fromLTRB(30, 0, 30, 0), decoration: BoxDecoration(color: const
child: TextFormField( Color(0xff6A9C89),borderRadius: BorderRadius.circular(30)),
keyboardType: TextInputType.emailAddress child: TextButton(
decoration: InputDecoration(hintText: "Email child: load? const CircularProgressIndicator(color:
ID",border: OutlineInputBorder(borderRadius: Colors.white,):Text("Login",style: GoogleFonts.albertSans(color:
BorderRadius.circular(30), Colors.white,fontSize: 17,fontWeight: FontWeight.w700),),
borderSide: BorderSide.none),filled: true,fillColor: onPressed: (){
Colors.grey.withOpacity(0.2), setState(() {
hintStyle: TextStyle(fontWeight: load=true;
FontWeight.w500,color: Colors.black.withOpacity(0.5))), });
controller: emailController, if(_key.currentState!.validate()) {
validator: (value){ _auth.signInWithEmailAndPassword(
if(value!.isEmpty || value==null){ email: emailController.text.toString(),
return "Enter valid email"; password: passController.text.toString()
} else { ).then((onValue) async {
return null; //Check staf
} DocumentSnapshot docData=await
}, ref.doc(_auth.currentUser!.uid.toString()).get();
), Map<String, dynamic>? data=docData.exists?
), docData.data() as Map<String, dynamic>:null;
const SizedBox(height: 15,), //Check HODs
Padding( DocumentSnapshot hodDoc=await
padding: const EdgeInsets.fromLTRB(30, 0, 30,collectionReference.doc(_auth.currentUser!.uid).get();
0),
child: TextFormField( Map<String, dynamic>? hodData=hodDoc.exists?
keyboardType: TextInputType.visiblePasswordhodDoc.data() as Map<String, dynamic>:null;
obscureText: pass?true:false, // Check Principle
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 23
People Detection and Counting System
DocumentSnapshot pDoc=await }
principle.doc(_auth.currentUser!.uid).get(); },
Map<String, dynamic>? pData=pDoc.exists? ),
pDoc.data() as Map<String, dynamic>:null; )
],
if(data?['userType']=="Teacher"){ ),
String? token=await )
FirebaseMessaging.instance.getToken(); ],
await ref.doc(_auth.currentUser!.uid).update({),
'fcmToken':token.toString() );
}).then((onValue){ }
}
Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute HodModel:-
(builder: (context) => TeaBottomNav()),
(Route<dynamic> route) => false,);
}); TeacherADD:-
} else if(hodData?['userType']=="HOD"){import 'package:cloud_firestore/cloud_firestore.dart';
String? token=await import 'package:firebase_auth/firebase_auth.dart';
FirebaseMessaging.instance.getToken(); import 'package:flutter/material.dart';
await import 'package:getpass/HODsModules/DeptTeacher.dart';
collectionReference.doc(_auth.currentUser!.uid).update({ import 'package:getpass/Errro.dart';
'fcmToken':token.toString() import 'package:getpass/Success.dart';
}).then((onValue){
class AddTeacher extends StatefulWidget {
Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute @override
(builder: (context) => hodBottomNav()), State<AddTeacher> createState() => _AddTeacherState();
(Route<dynamic> route) => false,);}
});
} else if(pData?['userType']=="Principle"){
class _AddTeacherState extends State<AddTeacher> {
String? token=await
FirebaseMessaging.instance.getToken(); bool pass=true;
await bool load=false;
principle.doc(_auth.currentUser!.uid).update({ final _key=GlobalKey<FormState>();
'fcmToken':token.toString() final nameController=TextEditingController();
}).then((onValue){ final contactController=TextEditingController();
final emailController=TextEditingController();
Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute final passwordController=TextEditingController();
(builder: (context) => pBottomNav()), final classController=TextEditingController();
(Route<dynamic> route) => false,); final educationController=TextEditingController();
});
} else{ FirebaseAuth _auth=FirebaseAuth.instance;
setState(() { String getCurrentYearMonth() {
load=false; DateTime now = DateTime.now();
}); return "${now.year}-${now.month.toString().padLeft(2, '0')}";
_auth.signOut(); }
Error().toastMessage("Invalid Email ID and
Password"); Widget build(BuildContext context) {
} return Scaffold(
}).onError((error, stackTrace){ appBar: AppBar(
setState(() { title: const Text("Add Teacher"),
load=false; centerTitle: true,
}); ),
Error().toastMessage(error.toString()); body: Padding(
}); padding: const EdgeInsets.only(left: 20,right: 20),
} else { child: Form(
setState(() { key: _key,
load=false; child: ListView(
}); children: [
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 24
People Detection and Counting System
Text("Teacher Details",style: TextStyle(fontSize: TextFormField(
17,fontWeight: FontWeight.w500,color: keyboardType: TextInputType.visiblePassword,
Colors.black.withOpacity(0.6))), obscureText: pass?true:false,
const SizedBox(height: 20,), decoration: InputDecoration(labelText: "Password",
TextFormField( border: OutlineInputBorder(borderRadius:
keyboardType: TextInputType.name, BorderRadius.circular(10)),
decoration: InputDecoration(labelText: "Name", prefixIcon: const Icon(Icons.security_outlined,size:
hintText: "eg. John R.K", 22,color: Color(0xff3F72AF)),
border: OutlineInputBorder(borderRadius: suffixIcon: IconButton(
BorderRadius.circular(10)), icon: pass? const Icon(Icons.lock_outline,color:
prefixIcon: const Color(0xff1DB954),size: 22,): const
Icon(Icons.person_outline_rounded,size: 22,color: Icon(Icons.lock_open_outlined,color: Color(0xffDC3545),size: 22,),
Color(0xff3F72AF),)), onPressed: (){
controller: nameController, setState(() {
validator: (value){ pass=pass?false:true;
if(value==null || value.isEmpty){ });
return "Enter valid name"; },
} else { )),
return null; controller: passwordController,
} validator: (value){
}, if(value==null || value.isEmpty){
), return "Enter valid password";
const SizedBox(height: 15,), } else {
TextFormField( return null;
keyboardType: TextInputType.number, }
decoration: InputDecoration(labelText: "Contact", },
border: OutlineInputBorder(borderRadius: ),
BorderRadius.circular(10)), const SizedBox(height: 20,),
prefixIcon: const Icon(Icons.call_outlined,size: Text("Other Details",style: TextStyle(fontSize:
22,color: Color(0xff3F72AF))), 17,fontWeight: FontWeight.w500,color:
controller: contactController, Colors.black.withOpacity(0.6))),
validator: (value){ const SizedBox(height: 20,),
if(value==null || value.isEmpty || value.length!=10){ StreamBuilder(
return "Enter valid number"; stream:
} else { FirebaseFirestore.instance.collection('HODs').doc(_auth.currentUser!.
return null; uid).snapshots(),
} builder: (context, AsyncSnapshot<DocumentSnapshot>
}, streamSnapshot){
), if(streamSnapshot.connectionState ==
const SizedBox(height: 15,), ConnectionState.waiting){
TextFormField( return const Center(child: CircularProgressIndicator(),);
keyboardType: TextInputType.emailAddress, } else if(streamSnapshot.hasError){
decoration: InputDecoration(labelText: "Email", return const Center(child: Text("Something went
border: OutlineInputBorder(borderRadius: wrong"),);
BorderRadius.circular(10)), } else {
prefixIcon: const Map<String, dynamic> data=streamSnapshot.data!.data()
Icon(Icons.alternate_email_rounded,size: 22,color: as Map<String, dynamic>;
Color(0xff3F72AF))), return TextField(
controller: emailController, keyboardType: TextInputType.name,
validator: (value){ readOnly: true,
if(value==null || value.isEmpty){ decoration: InputDecoration(hintText: "${data['dept']}",
return "Enter valid email"; border: OutlineInputBorder(borderRadius:
} else { BorderRadius.circular(10)),
return null; prefixIcon: const Icon(Icons.school_outlined,size:
} 22,color: Color(0xff3F72AF),)),
}, );
), }
const SizedBox(height: 15,), },
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 25
People Detection and Counting System
), onPressed: () async {
const SizedBox(height: 15,), setState(() {
Row( load=true;
children: [ });
Expanded( if(_key.currentState!.validate()){
child: TextFormField( final String hodID = _auth.currentUser!.uid;
keyboardType: TextInputType.name, DocumentSnapshot docData=await
decoration: InputDecoration(hintText: "eg. TYCO-
FirebaseFirestore.instance.collection('HODs').doc(_auth.currentUser!.
A",labelText: "Class", uid).get();
border: OutlineInputBorder(borderRadius: CollectionReference
BorderRadius.circular(10)), ref=FirebaseFirestore.instance.collection('Teachers');
prefixIcon: const Icon(Icons.class_outlined FirebaseAuth tea=FirebaseAuth.instance;
22,color: Color(0xff3F72AF),)), await tea.createUserWithEmailAndPassword(
controller: classController, email: emailController.text.toString(),
validator: (value){ password: passwordController.text.toString()
if(value==null || value.isEmpty){ ).then((onValue) async {
return "Enter valid class"; await ref.doc(tea.currentUser!.uid).set({
} else {
return null; 'class':classController.text.toUpperCase().toString(),
} 'contact':contactController.text.toString(),
}, 'dept':docData['dept'].toString(),
), 'hodName':docData['name'].toString(),
), 'education':educationController.text.toString(),
const SizedBox(width: 15,), 'email':emailController.text.toString(),
Expanded( 'name':nameController.text.toString(),
child: TextFormField( 'password':passwordController.text.toString(),
keyboardType: TextInputType.name, 'photoURL':null,
decoration: InputDecoration(labelText: 'totalLeave':"0",
"Education", 'lastReset':getCurrentYearMonth().toString(),
border: OutlineInputBorder(borderRadius: 'hodID':hodID,
BorderRadius.circular(10)), 'userID':tea.currentUser!.uid.toString(),
prefixIcon: const 'userType':"Teacher"
Icon(Icons.school_outlined,size: 22,color: Color(0xff3F72AF),)), }).then((onValue) async {
controller: educationController, tea.signOut();
validator: (value){ await _auth.signInWithEmailAndPassword(
if(value==null || value.isEmpty){ email: docData['email'],
return "Enter valid education"; password: docData['password']
} else { ).then((onValue){
return null; Success().toastMessage("Teacher Added
} Successfully");
}, Navigator.pop(context,
), MaterialPageRoute(builder: (builder){
), return DeptTeacher();
], }));
), });
const SizedBox(height: 25,), });
Row( }).onError((error, stackTrace){
mainAxisAlignment: MainAxisAlignment.center, Error().toastMessage(error.toString());
children: [ setState(() {
Container( load=false;
height: 45,width: 150, });
decoration: BoxDecoration(color: const });
Color(0xff112D4E),borderRadius: BorderRadius.circular(5)), } else {
child: TextButton( setState(() {
child: load? const load=false;
CircularProgressIndicator():Text("Add",style: TextStyle(color: });
Colors.white.withOpacity(0.8),fontSize: 18,fontWeight: }
FontWeight.w500)), },
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 26
People Detection and Counting System
), return Center(child: CircularProgressIndicator(),);
), } else if(streamSnapshot.hasError){
const SizedBox(width: 15,), return Center(child: Text("Something went wrong"),);
Container( } else if(streamSnapshot.hasData == false ||
height: 45,width: 150,
streamSnapshot.data!.docs.isEmpty){
decoration: BoxDecoration(color: const
Color(0xffDBE2EF),borderRadius: BorderRadius.circular(5)),
return Center(child: Text("No any request"),);
child: TextButton( } else {
child: const Text("Cancel"), return ListView.builder(
onPressed: (){ itemCount: streamSnapshot.data!.docs.length,
Navigator.pop(context, itemBuilder: (itemBuilder, index){
MaterialPageRoute(builder: (builder){ DocumentSnapshot
return DeptTeacher(); data=streamSnapshot.data!.docs[index];
})); return Padding(
}, padding: EdgeInsets.only(top: 10,bottom: 10),
), child: Container(
),
decoration: BoxDecoration(color:
],
), Colors.white,borderRadius: BorderRadius.circular(15)),
const SizedBox(height: 25,), child: Padding(
], padding: EdgeInsets.all(15),
), child: Column(
), mainAxisAlignment:
), MainAxisAlignment.start,
); crossAxisAlignment:
} CrossAxisAlignment.start,
} children: [
Row(
TeacherRequest:- import
mainAxisAlignment:
'package:cloud_firestore/cloud_firestore.dart'; MainAxisAlignment.start,
import 'package:firebase_auth/firebase_auth.dart'; crossAxisAlignment:
import 'package:flutter/material.dart'; CrossAxisAlignment.start,
import '../SendLeaveNotificastion.dart'; children: [
Container(
class TeacherRequest extends StatelessWidget { height: 75,width: 75,
Widget build(BuildContext context) { decoration: BoxDecoration(image:
DecorationImage(image: data['photoURL']==null?
FirebaseAuth _auth=FirebaseAuth.instance; AssetImage("assets/images/studentpfp.png"):NetworkImage(da
CollectionReference ta['photoURL']),fit: BoxFit.contain),
ref1=FirebaseFirestore.instance.collection('Campus borderRadius:
Leaves'); BorderRadius.circular(50)),
return Scaffold( ),
appBar: AppBar( Expanded(
title: Text("Teacher Requests"), child: ListTile(
centerTitle: true, title: Padding(
), padding: EdgeInsets.only(bottom: 5),
body: Padding( child: Text("${data['name']}",style:
padding: EdgeInsets.only(left: 15,right: 15), TextStyle(color: Colors.black,fontWeight:
child: StreamBuilder( FontWeight.w500,fontSize: 19),),
stream: ref1.orderBy('appliedAt', descending: ),
true).where('hodID', isEqualTo: subtitle: Text("Class: $
_auth.currentUser!.uid).snapshots(), {data['class']}",style: TextStyle(color:
builder: (context, AsyncSnapshot<QuerySnapshot>
Colors.black.withOpacity(0.6),fontWeight:
streamSnapshot){ FontWeight.w500,fontSize: 17),),
if(streamSnapshot.connectionState == ),
ConnectionState.waiting){
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 27
People Detection and Counting System
) Icon(Icons.info_rounded,color:
], Color(0xff006BFF),size: 21,),
), SizedBox(width: 10,),
SizedBox(height: 17,), Expanded(child: Text("${data['reason']}",
Container( style: TextStyle(color:
height: 40,width: 220, Colors.black,fontSize: 17),))
decoration: BoxDecoration(color: ],
Color(0xffC4D9FF),borderRadius: ),
BorderRadius.circular(30)), SizedBox(height: 15,),
child: Center(child: Text("$ Row(
{data['dept']}",style: TextStyle(color: children: [
Color(0xff344CB7),fontSize: 17,fontWeight: Icon(Icons.access_time_rounded,size:
FontWeight.w500),)), 20,color: Colors.black.withOpacity(0.6),),
), SizedBox(width: 10,),
SizedBox(height: 17,), Text("Applied on: $
Container( {data['appliedAt']}",style: TextStyle(color:
height: 1,width: Colors.black.withOpacity(0.6),fontSize: 15,fontWeight:
MediaQuery.of(context).size.width, FontWeight.w500),)
decoration: BoxDecoration(color: ],
Colors.black.withOpacity(0.1)), ),
), SizedBox(height: 20,),
SizedBox(height: 20,), Container(
Row( height: 1,width:
mainAxisAlignment: MediaQuery.of(context).size.width,
MainAxisAlignment.spaceBetween, decoration: BoxDecoration(color:
children: [ Colors.black.withOpacity(0.1)),
Row( ),
children: [ SizedBox(height: 15,),
Row(
Icon(Icons.calendar_today_rounded,color: mainAxisAlignment:
Color(0xff006BFF),size: 20,), MainAxisAlignment.center,
SizedBox(width: 10,), children: [
Text("${data['date']}",style: Expanded(
TextStyle(color: Colors.black,fontSize: 17),), child: Container(
], height: 45,
), decoration: BoxDecoration(color:
Row( data['hodApproval']=="Pending"? Color(0xff1DB954)
children: [ :data['hodApproval']=="Approved"?
Color(0xff1DB954).withOpacity(0.5)
Icon(Icons.access_time_filled_rounded,color: : Color(0xff1DB954),borderRadius:
Color(0xff006BFF),size: 20,), BorderRadius.circular(10)),
SizedBox(width: 10,), child: TextButton(
Text("${data['time']}",style: child: Row(
TextStyle(color: Colors.black,fontSize: 17),), mainAxisAlignment:
], MainAxisAlignment.center,
) children: [
], Icon(Icons.check_rounded,size:
), 20,color: Colors.white,),
SizedBox(height: 15,), SizedBox(width: 5,),
Row( Container(
crossAxisAlignment: child:
CrossAxisAlignment.start, data['hodApproval']=="Pending"? Text("Approve",style:
children: [ TextStyle(color: Colors.white,fontSize: 17,fontWeight:
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 28
People Detection and Counting System
FontWeight.w500)) FontWeight.w500),)
:data['hodApproval']=="App :data['hodApproval']=="Rejecte
roved"? Text("Approved",style: TextStyle(color: d"? Text("Rejected",style: TextStyle(color:
Colors.white,fontSize: 17,fontWeight: FontWeight. Colors.white,fontSize: 17,fontWeight: FontWeight.w500),)
: Text("Approve Me",style: : Text("Cancel",style:
TextStyle(color: Colors.white,fontSize: 17,fontWeight: TextStyle(color: Colors.white,fontSize: 17,fontWeight:
FontWeight.w500))) FontWeight.w500),))
],), ],),
onPressed: () async { onPressed: () async {
CollectionReference CollectionReference
ref=FirebaseFirestore.instance.collection('Campus Leaves');ref2=FirebaseFirestore.instance.collection('Campus Leaves');
await ref.doc(data.id).update({ await ref2.doc(data.id).update({
'hodApproval':"Approved", 'hodApproval':"Rejected",
}).then((onValue) async { }).then((onValue) async {
String? studToken = (await String? studToken = (await
FirebaseFirestore.instance.collection('Teachers').doc(data['u
FirebaseFirestore.instance.collection('Teachers').doc(data['userI
serID']).get()).data()?['fcmToken']; D']).get()).data()?['fcmToken'];
await sendNotification( await sendNotification(
title: "Leave Request title: "Leave Request Rejected",
Approved", body: "HOD sir rejected your leave
body: "HOD sir approved request.
your Tap to see more.",
leave request. Tap to see more.", fcmToken: studToken.toString(),
fcmToken: );
studToken.toString(), });
); },
}); ),
}, ),
), )
), ],
), )
SizedBox(width: 10,), ],
Expanded( ),
child: Container( ),
height: 45, ),
decoration: BoxDecoration(color: );
data['hodApproval']=="Pending"? Color(0xffDC3545) },
:data['hodApproval']=="Rejected" );
? Color(0xffDC3545).withOpacity(0.5) }
: },
Color(0xffDC3545),borderRadius: ),
BorderRadius.circular(10)), ),
child: TextButton( );
child: Row( }
mainAxisAlignment: }
MainAxisAlignment.center,
children: [
Icon(Icons.close_rounded
20,color: Colors.white),
SizedBox(width: 5,),
Container(
child:
data['hodApproval']=="Pending"? Text("Reject",style:
TextStyle(color: Colors.white,fontSize: 17,fontWeight:
VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR
Page | 29
People Detection and Counting System

OUTPUT

Flashscreen

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 30
People Detection and Counting System
Student Section

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 31
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 32
People Detection and Counting System

Teacher Section

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 33
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 34
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 35
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 36
People Detection and Counting System

Hod Section

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 37
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 38
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 39
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 40
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 41
People Detection and Counting System

Principle Section

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 42
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 43
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 44
People Detection and Counting System

Project Root Folder

Users data inside users table in users.db file

Contact page data inside contacts table in users.db file

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 45
People Detection and Counting System

CHAPTER 7
Test Cases

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 46
People Detection and Counting System

Testcases: Upload Video


Test Case Description Input Expected Output Actual Result Status
ID
TC_01 Verify if the system MP4, AVI, Video is Video is Pass
accepts valid video MKV uploaded uploaded
files successfully successfully
TC_02 Verify if the system TXT, JPG Error message Error message Pass
rejects unsupported displayed displayed
formats
TC_03 Verify if large video Large MP4 Video uploads and Video uploads and Pass
files are processed file (500MB+) processes without processes without
correctly crashing crashing
TC_04 Check if empty or Corrupted Error message Error message Pass
corrupted files MP4 displayed displayed
are handled

Testcases: Video Processing


Test Case Description Input Expected Output Actual Result Status
ID
TC_05 Verify if system starts Uploaded video Processing starts Processing starts Pass
processing after upload
TC_06 Check if video is Depends on Processing completes Processing Pass
analyzed within a length of the within expected time completes within
reasonable time video expected time

Testcases: People Detection

Test Case Description Input Expected Output Actual Result Status


ID
TC_08 Detect people in Video with Correct count Correct count Pass
a low-crowd <5 people displayed displayed
video
TC_09 Detect people in Video with Accurate count Accurate count Pass
a high-crowd 10+ people displayed displayed
video
TC_10 Check if system can People Accurate Accurately Pass
detect people at moving in detection detected
different angles different
directions
TC_11 Verify false positive Objects System ignores System ignores Pass
cases resembling non-human non-human
people objects objects

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 47
People Detection and Counting System

Testcases: People Counting in Defined Region

Test Case Description Input Expected Output Actual Result Status


ID
TC_12 Verify counting Small area Correct number Correct number Pass
accuracy in with few counted counted
small people
regions
TC_13 Verify counting Large area Correct number Correct number Pass
accuracy in large with many counted counted
regions people
TC_14 Check if the system People moving Correct entry/exit Correct entry/exit Pass
differentiates between in/out of count count
entry and exit defined region

Testcases: Result Display

Test Case Description Input Expected Output Actual Result Status


ID
TC_15 Verify people count is Processed Correct count Correct count Pass
displayed correctly video displayed displayed

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 48
People Detection and Counting System

CHAPTER 8
Conclusion &
Future Scope

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 49
People Detection and Counting System

CONCLUSION

This project is easy to implement and it is technically flexible to adapt to new environment. This
project is designed in such an extensible fashion to increase the future adaptability and it is flexible,
where the modification could be done whenever necessary.

This project made the entry work easier to make the entry details secured by providing the
appropriate authorization. In this process administrator is provided separate username and password
so that no one can access the data that are entered in the database.

By using this project clerical work in mostly reduced and all process are carried out digitally so that
the data are ported easily. The corresponding department HOD is approving or rejecting the gate
pass request made by students. It is developed in a user-friendly manner. The system is very fast and
any transactions can be viewed or retaken at any level. The work burden is reduced and solves the
problem of time consuming.

The end users are required to have less working experience to run this project. The application is tested
well and end users satisfaction is found to be more. The user can easily understand the details available
from the report. This software will support for the future development.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 50
People Detection and Counting System

FUTURE SCOPE
1. Real-Time Processing
o The current system processes pre-recorded videos. Future improvements can enable live
video analysis to detect and count people in real-time, making it useful for security
monitoring and crowd control in public places.

2. Multi-Camera Integration
o By integrating multiple cameras, the system can track individuals across different locations
and provide more comprehensive surveillance. This is beneficial for large venues like malls,
airports, and stadiums where a single camera is insufficient.

3. Cloud-Based Storage & Analytics


o Storing processed data in the cloud will allow users to access reports from anywhere,
enabling long-term storage and detailed historical analysis. Cloud integration can also help
in scaling the system for multiple users.

4. AI-Based Accuracy Enhancement


o Implementing advanced deep learning models like YOLOv8, Transformers, and CNNs will
improve detection accuracy, even in challenging environments like low-light conditions or
dense crowds.

5. Occlusion Handling Improvement


o Enhancing the system to detect people even when partially hidden behind objects will
reduce miscounts. Using depth sensors, thermal imaging, or AI-based re-identification
techniques can improve detection reliability.

6. Edge AI Deployment
o Deploying the system on low-power edge devices like Raspberry Pi or NVIDIA Jetson will
reduce reliance on high-performance computers. This will allow on-site, real-time people
counting without requiring constant internet access.

7. Crowd Density Analysis


o Implementing heatmaps and density estimation algorithms can help analyze crowded areas,
optimize space utilization, and improve emergency evacuation planning in high-footfall
zones.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 51
People Detection and Counting System

8. Integration with IoT Sensors


o Combining AI with motion sensors, infrared sensors, or RFID systems will enhance accuracy
by cross-verifying detected objects, reducing false positives and false negatives in people
counting.

9. Automated Alerts & Notifications


o Setting up automated alerts when the crowd exceeds a predefined limit can help in managing
overcrowding, ensuring safety compliance, and improving staff deployment in public places.
Alerts can be sent via SMS, E-mail, or mobile notifications.

10.Expansion to Other Applications


 The system can be adapted for retail analytics (customer tracking), smart cities (pedestrian
flow analysis), traffic management (vehicle and people counting), and healthcare (monitoring
patient movement in hospitals), making it a versatile tool for multiple industries.

By enhancing these future capabilities, the People Detection and Counting System can evolve into
a powerful and versatile solution for crowd monitoring and security management, scalability,
and automation. With advanced AI models, multi-camera integration, and IoT- powered alerts,
optimize resource allocation, and improve public safety in high-footfall areas.

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 52
People Detection and Counting System

REFERENCES

[1] online gate pass application for hostel student by S.Venkatesa Perumal, B. I. Juvanna, and Sanju
Rajan. ( Dec-2018 )
[2] Automated gate pass system development by Romy Jun A. Sunico, Elwin S. Argana, Marife M.
Dumale (May-2014)
[3] Visitor gate-pass management system by Akshay ET, Afsal M,Abhinav R, Rahul C, Prof
Mohammed Malik CK,Associate Prof Haseena M ( Jan-2019 )
[4] E-Gatepass system by Chaitanya Lengure, by Laxmikant Kakde, Mamta Bargat, Saachi
Jambhulkar,Prof. Ashish Palandurkar, Prof. Hemant Wade ( Apr-2016 )
[5] Face recognition based gate-pass by Dr. Sunil Bhutada, Dr. Sreenivas Mekala, Mayukhi
Gandham,Rishika Bhat, Ruchitha Upadhya yula (May-June 2022)

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 53
People Detection and Counting System

ACTION PLAN

Stage 1: Analysis, Literature Survey, Forming


01/08/2024-24/09/2024
problem statement

Stage 2: Designing 01/10/2024-30/10/2024


Stage 3: Implementation 01/11/2024-30/01/2025
Stage 4: Integration of Modules & Testing 01/02/2025-30/01/2025
Stage 5: Deployment & Results 01/03/2025-15/03/2025

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 54
People Detection and Counting System

VIDYA VIKAS PRATISHTAN POLYTECHNIC, SOLAPUR


Page | 55

You might also like