0% found this document useful (0 votes)
643 views31 pages

Student Attendance Management System Project File

The document describes an attendance management system called 'markME' that allows users to track and manage student attendance digitally. It discusses features like logging in with unique credentials, selecting students and marking attendance manually. The system aims to automate attendance tracking and generate reports to reduce paperwork.

Uploaded by

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

Student Attendance Management System Project File

The document describes an attendance management system called 'markME' that allows users to track and manage student attendance digitally. It discusses features like logging in with unique credentials, selecting students and marking attendance manually. The system aims to automate attendance tracking and generate reports to reduce paperwork.

Uploaded by

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

1.

INTRODUCTION

“markME” is software developed for


maintaining the student attendance on daily basis
in college , school and working places. According
to the student schedule and working hours user
can handle student attendance report and will
be responsible to mark the attendance of
students .

In this system user will be given separate


username and password according to the subject
and classes which will help in building a strong
and accurate attendance report.

The report will on monthly basis . User can


manually click on the numbers which is given to
students for marking attendance in accurate way
This is an smart and time saving system to
work in proper manner not only saves the time
it is reliable.

This system can mark attendance for the


school students , college students and even for
office employees . The paper-pen , register
work for attendance can be overcomed through
this , the program can work quick and with
reliability .
1.1. Defina�on :

An online attendance management system is


a dedicated software to manage the attendnece
records of students. It automatically tracks the
progress of students and generates reports. It
stores all the individual details of the students
digitally on the cloud. Teachers and school
management can access the data anytime. It
gives complete data about the time the students
are present in the institute and the time they
take off.
2. PURPOSE:

An online attendance management system or


digital attendance platform is one of them, which
is developed to automate the daily attendance in
schools. Additionally, it helps to maintain accurate
records and generate summarized student
attendance reports.

▸ Understanding application.
▸ Planning.
▸ Scheduling.
▸ Developing candidate solution

‐ This system manages to the analysis of


the report creation develops of the student
attendance.

‐ First design the students entry form, staff


allocation and time table allocation forms.

‐ This project will helps the attendance


system for the department calculate percentage
and reports for eligibility criteria of
examination.

‐ The application attendance entry system


will provide flexible report for all students
3. OBJECTIVE:

Attendence management system will keeps


track of daily attendance , working hours ,
breaks , login and logout hours. It will prevent
staffs time thaft. An attendance management
system would integrate all attending student
record onclick on user action in real time.

The attendance management will be used


for monitoring the attendance and the movement
of students ,staff ,employess within their working
hours and to prepare materials for processing
wages
4. OVER ALL DESCRIPTION:

"markMe" System developed will reduce


the manual work and avoid redundant data.
By maintaining the attendance manually,then
efficient report cannot be generated.

As the attaindence are maintained in


registers it has been tough task for staff to
maintain for long time instead the software
can keep long and retrieve the information
when needed.

4.1 Product Perspective:

4.1.1 Hardware Interfaces

■ The Operating systems as deskto, mobile


device, computers and
■ most come with built-in Wi-Fi, webcam,
microphone, speakers, and ports to get
connectivity with this software system.
■ with Power supply
4.1.2 Software Interfaces

• Python:- Python is an interpreted, object-oriented,


high-level programming language with dynamic
semantics. Its high-level built in data structures,
combined with dynamic typing and dynamic binding,
make it very attractive for Rapid Application
Development, as well as for use as a scripting or
glue language to connect existing components
together.

• HTML:- The HyperText Markup Language or HTML


is the standard markup language for documents
designed to be displayed and use to interpret and
compose text, images, and other material into visible
or audible web pages.

• MYSQL:- MySQL is free and open-source so�ware


, SQL, the acronym for Structured Query Language.
A relational database organizes data into one or
more data tables in which data may be related to
each other; these relations help structure the data.
SQL is a language programmers use to create,
modify and extract data from the relational
database, as well as control user access to the
database.

• Windows Pla�orm :- Windows is the desktop


operating system where user can handel any
external or internally develop software or any
application with easy.

• PyCharm:- PyCharm is an integrated development


environment (IDE) used for programming in Python.
It provides code analysis, a graphical debugger and
an integrated unit tester.
4.2 Product Func�on:

I) Teacher M odule:-
This module provides teacher related
information which act as our main user while
handling this application , thus it is user related
functionality module which has access to all
information.

II) Student Mo dule:-


This module provides student related
information which act as our secondary user
while handling this application though it does
not directly handel this application but instead
the user handel respective student information
related to their attendance , thus it is student
related functionality module which has access to
only specific information by coordinating with
that particular teacher or so called user.

III) Attendance Mod ule:-


This module provides end product to our
primary as well as secondary user while using
this application , thus this functionality is fully
based on input given by our student(secondary
user) which was recorded by teacher (primary
user) where end product is in the form of
Excel sheet carrys students attendance records.
4.3 . User Characteris�cs

I) ADMIN : -
The Admin is a person who run and manage
the system , in this project the teachers of the
college has right of admin.

Teachers can add student detail and fill the


attaindence daily for his\her division.

ADMIN FUNCTIONALITIES:
• Login

• Fill attendance

• Manage reports

• Password

• and Logout

II) Student :-
The characteristic of an student is just to call
their respective roll number while teacher take
attendance . Student make their attendance mark
by saying present when teacher call their roll
number.
4.4 OVERVIEW
I) LOGIN P AGE:
When you open the link of “markMe” system the
login page will display on your screen.
Every teacher have their own username and
password.They can login with the help of it by
clicking on “login button”. If password is forgot,click
on “Forgot password?”and reset it.If admin has any
other query click on “help” button.

II) PAGE II
After login second page will display. In that
admin\teachers has to select branch,division and year
of students and below is “Enter”button to go on
next page.while clicking on it third will display.

III) PAGE III


On this page there is “calendar”of ongoing
year-month.Teacher will select particular date and
will be directed towards next page. Below calender
“Next” button to go on next page by clicking it.

IV) Page IV -‘A’

This is a attendence record page containing


year,div like F.E-A, Day-Date and name of all
students from that division with roll numbers.By
scrolling, teacher will see name of all students.If
students is present ,teacher will mark his\her roll
no and it become “green”.After complete
attendence absent number automatically will
becomes red.by clicking on “save”button save this
record.
5. ADVANTAGES & DISADVANTAGES

Advantages:
• Accuracy in attendance records

• Increases efficiency and productivity

• Clear and easy way of record handling

• Seamless workflow management

• Reduces human efforts

• Time management

Disadvantages:-

• Sometimes human erros mayoccur

• Website or server problems


7. Design and Flowchart
Sequence diagram
8. CODING
#main function
from flask import Flask,render_template,request, redirect,
session
import os
import openpyxl
from pathlib import Path
#import pyodbc
import pandas as pd
from datetime import datetime
#import mysql.connector
import pymysql
app = Flask(__name__)
app.secret_key=os.urandom(24)
#conn = mysql.connector.connect()
conn = pymysql.connect(host = "localhost",
user = "root",
password = "%TGBbgt5",
db = "makme")
cur = conn.cursor()

#YOUR FUNCTIONS HERE


#login page for teacher login info
@app.route('/')
def tea_login():
return render_template('login.html')

#login validation function to check whether login info


is true or not
@app.route('/login_validation', methods=['POST'])
def login_validation():
name = request.form.get("t_name")
password = request.form.get("t_password")
print(name,password)
cur.execute(f"SELECT * FROM teacher_log WHERE
teacher_log.t_name ='{name}' and teacher_log.t_password
='{password}';")
cur.fetchall()
users = cur.fetchall()
if len(users)>0:
session[user_id]=users[0][0]
return render_template('login-confirmation-msg.html')
return redirect('/my_class')
else :
return redirect('/my_class')

#2nd page which shows various class whose attendance is need


to mark
@app.route('/my_class' , methods=['GET'])
def tea_class():
return render_template('class_selection.html')

# CLASS selection function to check whether login info is true


or not
@app.route('/class_selection', methods=['POST'])
def class_selection():
branch = request.form.get("branch")
year = request.form.get("year")
division = request.form.get("division")
# return ("SELECT * FROM teacher_log WHERE t_name
like `{}` AND t_password like `{}`;".format(t_name,t_password))
print(branch,year,division)
cur.execute(f"SELECT * FROM student_log WHERE
student_log.s_branch ='{branch}' and student_log.s_year ='{year}' and
student_log.s_division ='{division}' ;")
cur.fetchall()
users = cur.fetchall()
return redirect('/call_yourself')

if 'user_id' in session:
return redirect('/call_yourself')
else:
return redirect('/call_yourself')
@app.route('/call_yourself')
def tea_remark():
return render_template('my_call.html')

@app.route('/atten_rec')
def atten_rec():
return render_template('atten_rec.html')
xlsx_file = Path('templates','FY_atten.xlsx' )
wb_obj = openpyxl.load_workbook(xlsx_file)

# Read the active sheet:


sheet = wb_obj.active
for name, sheet_name in zip(xlsx_file, sheetnumber):
book = xlrd.open_workbook(name)
sheet = book.sheet_by_name(sheet_name)
for row in range(sheetc.nrows):
for column in range(sheet.ncols):
thecell = sheet.cell(row, 0)
xfx = sheet.cell_xf_index(row, 0)
xf = book.xf_list[xfx]

@app.route('/logout')
def tea_logout():
session.pop('user_id')
return redirect('/')

if __name__ == "__main__":
app.run(debug=True);
#app.run(port=int("1234"), debug=True)
#login page html code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>login</title>
</head>
<body id ="page01" style="text-align: center;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
" >
<header style="text-align:center-right;
font-size:50px;
padding-top:85px;
background-repeat: no-repeat ;
background-size:100% ;
height:20%;left: 0;
top: 0;
width: 100%;
background-image:url('https://tse3.mm.bing.net/');
">Teacher Log </header>
<section style="width:100%;">
<img
src="https://play-lh.googleusercontent.com/Nm5HsGJJqJ7U2YZ8WxN
3NGh5Pa_uDlOjqtgQfIB1XSRgZdxAP-5AVB3mj_jtbSNglg"
style="height:165px; width:185px">
<br><br>
<main >
<form id="loginform" style="padding-right:6%"
class="form" method="post" action="/login_validation">
<div style="font-size:19px">
<!-- user input -->
Username : <input type="text" style="height: 23px
; width:55%"
placeholder="e.g V.R Mahajan" name="t_name"
class="form-control" />
<br>
<br>
<!-- Password input -->
Password : <input type="password"
name="t_password" class="form-control" style="height: 23px ;
width:55%"/>
</div>
<br>
<!-- Checkbox -->
<div class="form-check" style="font-size:10px">
<label>
<input type="checkbox" checked="checked"
name="remember" > Remember me
</label>
</div>
<br>
<!-- Submit button -->
<button type="submit" id="log_btn" style="
background-color:#2b9c8f;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" >Log In</div></button>
<br>
<!--login_error_msg-->
<div style="width: 100%;height: 100%; display: grid;
justify-items: center; align-items: center;">
<p id="login_error_msg" style="width: 23%; text-align:
center; margin: 0; padding: 5px; font-size: 12px; font-weight:
bold; color: #8a0000; border: 1px solid #8a0000;
background-color: #e58f8f; opacity: 0;">Invalid username
<span style=" display: block;"> and/or password
</span>
</p> </div>
</form>
</main>
<footer style="padding-top:45px">
<div class="col" style="float:right; padding-right:40%">
<!-- Simple link -->
<a href="#!" style="font-size:12px">Forgot
password ? </a>
</div>
</footer>
</section>
<script>
function login() {
var loginForm = document.getElementById("u_info");
var loginButton =
document.getElementById("log_btn");
var loginErrorMsg =
document.getElementById("login-error-msg");

loginButton.addEventListener("click", (e) => {


e.preventDefault();
const username = loginForm.user_name.value;
const password = loginForm.user_password.value;

if (username == "user" && password ==


"web_dev") {
alert("You have successfully logged in.");
location.getElementById("page_2");
} else {
loginErrorMsg.style.opacity = 1;
}
})
}
</script>
</body>
</html>
#class selec�on html code

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width ;
initial-scale:1.0">
<title>my_class</title>
</head>
<body id = "" href="" style="text-align: center-left;position: fixed;left:
0;top: 0;width: 100%;height:100%;">
<b><header
style="text-align:center;font-size:50px;padding-top:85px;background-repe
at: no-repeat ;background-size:100% ;height:20%;right:30;top: 0;width:
100%;background-image:url('https://tse3.mm.bing.net/th?id=OIP.WW-gP
WxX75rW9XTqrcHelQHaEK&pid=Api&P=0&h=180');">Select Following
Option</header></b>
<br><br>
<section style="width:100%; padding:50px ; margin-left: 70px">
<form name="Form1" method="post"
action="/class_selection" style="text-align:left-side; font-size:25px">
<div id= "" style="padding:5px">
Select Branch :<br>
<select name="branch" style="padding:5px ; width: 70%" >
<option
value="Computer Engineering" selected>Computer Engineering
<option
value="Information technology">Information technology
<option
value="Electronics And Telecommunication">Electronics &
Telecommunication
<option
value="Mechanical Engineering">Meechanical Engineering
<option
value="Electrical Engineering">Electrical Engineering
</select><br><br>
Select Year : <br>
<select name="year" style="padding:5px; width:70%">
<option value="First Year"
selected>First Year
<option value="Second Year">Second
Year
<option value="Third Year">Third Year
<option value="Forth Year">Fourth
Year
</select><br><br>
Select Division:<br>
<select name="division" style="padding:5px ;width:70%">
<option value="A" selected>A
<option value="B">B
<option value="C">C
<option value="D">D
</select> </div> <br><br></br>
<footer style="text-align:center; padding-right:70px">
<button style=" background-color:#2b9c8f;color:
white;padding:7px 20px;cursor: pointer;"><div
style="font-size:15px ;text-align:center;">Submit</div></button>
</footer>

</form>
</section>

</body>
</html>
Select Year : <br>
<select name="year" style="padding:5px; width:70%">
<option value="First Year"
selected>First Year
<option value="Second Year">Second
Year
<option value="Third Year">Third Year
<option value="Forth Year">Fourth
Year
</select><br><br>
Select Division:<br>
<select name="division" style="padding:5px ;width:70%">
<option value="A" selected>A
<option value="B">B
<option value="C">C
<option value="D">D
</select> </div> <br><br></br>
<footer style="text-align:center; padding-right:70px">
<button style=" background-color:#2b9c8f;color:
white;padding:7px 20px;cursor: pointer;"><div
style="font-size:15px ;text-align:center;">Submit</div></button>
</footer>

</form>
</section>

</body>
</html>
#call yourself html code
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width ;
initial-scale:1.0">
<head>
<title>
my_call
</title>

</head>
<body id = "page3" class="text-center" style="
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
" >
<div style="background-repeat: no-repeat ;
background-size:100% ;
left: 0;
top: 0;
height:10%;
width: 100%;
text-align: right;
background-image:url('https://tse3.mm.bing.net/th?id=OIP.WW-gPWxX
75rW9XTqrcHelQHaEK&pid=Api&P=0&h=180');
">
<label for="start" style="font:sans-serif; font-size:1.5rem">DATE
:<input type="date" id="start" name="trip-start" style=" margin: 2rem
2.5rem;"
value="2023-06-22"
min="2023-01-01" max="2023-12-31"></label>

</div>
<div style="float:center; padding-left:5%;
font-size:60px;text-align:center ;float:center;border-color: black">Call
Yourself</div>
<form action="/atten_rec" >
<div style="float:center; padding-left:30%"><table
style="text-align:center ;float:center; border: 5px ; border-color:
black"><br><br>

<tr>
</tr>
<tr>
<td><button type="button" id="log_btn1" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" >P</div></button>
<br> 1</td>
<td><button type="button" id="log_btn2" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" >P</div></button>
<br>2</td>
<td><button type="button" id="log_btn3" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" > P</div></button>
<br>3</td>
<td><button type="button" id="log_btn4" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" > P</div></button>
<br>4</td>
<td><button type="button" id="log_btn5" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" >P</div></button>
<br>5</td>
<td><button type="button" id="log_btn6" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >P</div></button>
<br>6</td>
<td><button type="button" id="log_btn7" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" > P</div></button>
<br>7</td>
<td><button type="button" id="log_btn8" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" > P</div></button>
<br>8</td>
<td><button type="button" id="log_btn9" action="callme()" style="
background-color:#08d76c;color: white;padding:7px 23px;cursor:
pointer;"><div style="font-size:19px" > P</div></button>
<br>9</td>
<td><button type="button" id="log_btn10" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>10</td>
</tr>
<tr>
<td><button type="button" id="log_btn11" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>11</td>
<td><button type="button" id="log_btn12" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>12</td>
<td><button type="button" id="log_btn13" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>13</td>
<td><button type="button" id="log_btn14" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>14</td>
<td><button type="button" id="log_btn15" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>15</td>

<td><button type="button" id="log_btn16" action="callme()"


style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>16</td>
<!---Similar code for all button from 1-70 -->
<td><button type="button" id="log_btn66" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>66</td>
<td><button type="button" id="log_btn67" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>67</td>
<td><button type="button" id="log_btn68" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>68</td>
<td><button type="button" id="log_btn69" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>69</td>
<td><button type="button" id="log_btn70" action="callme()"
style=" background-color:#08d76c;color: white;padding:7px
23px;cursor: pointer;"><div style="font-size:19px" >
P</div></button>
<br>70</td>
</tr>
</table></div><br><br><br>
<button type="submit" id="log_btn" style="
background-color:#2b9c8f;color: white;width:100%;padding:7px
20px;cursor: pointer;"><div style="font-size:15px
;text-align:center;">Done</div></button>
</form>
</body>
</html>
9. OUTPUT/RESULT:

1st Page: Teacher log

2nd Page: Selec�on of class , division and branch


3rd Page : Calling student roll number

4th Page: Excel sheet of student a�endance record


9. APPLICATION & FUTURE SCOPE :

APPLICATION :
• Taking and maintaining record of daily
attendance for school students

• Attendence record management for college


students

• Maintaing employess record in offices

SCOPE :
• Attendence management system will keeps track
of daily attendance , working hours , breaks ,
login and logout hours.

• It will prevent staffs time thaft.

• An attendance management system would


integrate all attending student record onclick on
user action in real time.

• The attendance management will be used for


monitoring the attendance and the movement of
students ,staff ,employess within their working
hours and to prepare materials for processing
wages
9. APPLICATION :

• Taking and maintaining record of daily


attendance for school students

• Attendence record management for college


students

• Maintaing employess record in offices


10. FUTURE SCOPE:

• Attendence management system will keeps


track of daily attendance , working hours ,
breaks , login and logout hours.

• It will prevent staffs time thaft.

• An attendance management system would


integrate all attending student record onclick
on user action in real time.

• The attendance management will be used


for monitoring the attendance and the
movement of students ,staff ,employess
within their working hours and to prepare
materials for processing wages
11. CONCLUSION

‐ Attendence management system will help


and make easy to take and maintain the
records.

‐ By clicking the attendance of the


particular student can be taken according
to respective period, subject with a very
ease. Login page provides the security to
protect the records and page2 helps the
user to access the particular attendece
sheets

‐ . In this way this system will reduce the


human efforts and save time.
12. REFERENCES:

BOOK REFERENCE

▸ Python Crash Course: A Hands-On,


Project-Based Introduction to Programming by
Eric Matthes
▸ Computer Fundamentals and Information
Technology" by S S Shrivastava

WEBSITE REFERENCE:-

▸ https://realpython.com/python-web-applications/

▸ https://www.allaboutpython.tech/2023/02/how-t
o-create-and-add-data-to-excel_18.html

▸ https://r.search.yahoo.com/www.geeksforgeeks.or
g%2f/RK=2/RS=eGUqnzpSrWngJhHsnlxChJlqt2k
-

Thank you..

You might also like