Microlink Information Technology College Department of Computer Science
Microlink Information Technology College Department of Computer Science
Microlink Information Technology College Department of Computer Science
Prepared by:
Advisor:
Ephraim Tilahun
29 July 2023
Revision History
Student Attendance Management System
Acknowledgments
We would like to thank a Big Habesha and our advisor Ato Ephraim Tilahun who monitored and
inspected our documents as well as the project coding process. His valuable comments,
suggestions and advises were major outcomes of this project. We would also like to express our
thankful message to all those who helped us to complete this project.
Table of Content
ACKNOWLEDGMENTS............................................................................................................iii
TABLE OF CONTENT...............................................................................................................iv
1. INTRODUCTION...................................................................................................................1
1.1 BACKGROUND........................................................................................................................1
1.2 THE EXISTING SYSTEM..........................................................................................................2
1.2.1 Overview of the Existing System....................................................................................3
1.2.2 Problems of the Existing System....................................................................................3
1.3 THE PROPOSED SYSTEM........................................................................................................3
1.3.1 General Objective..........................................................................................................4
1.3.2 Specific Objective..........................................................................................................4
1.3.3 Significance of the Project.............................................................................................4
1.3.4 Scope of the Project.......................................................................................................4
1.4 METHODOLOGIES AND TECHNIQUES.....................................................................................5
1.4.1 Data Collection Methods and Techniques.....................................................................5
1.4.2 System Analysis and Design and Development Tools...................................................5
2. SYSTEM ANALYSIS.............................................................................................................6
2.1 INTRODUCTION....................................................................................................................6
2.1.1 Purpose..........................................................................................................................6
2.1.2 Scope..............................................................................................................................8
2.1.3 Overview......................................................................................................................10
2.2 CURRENT SYSTEM................................................................................................................10
2.3 PROPOSED SYSTEM..............................................................................................................11
2.3.1 Overview........................................................................................................................11
2.3.2 Functional requirements...............................................................................................11
2.3.3 Nonfunctional requirements..........................................................................................13
2.3.4 Constraints (“Pseudo requirements”)..........................................................................26
2.3.5 System models...............................................................................................................26
3. SYSTEM DESIGN................................................................................................................35
3.1 INTRODUCTION....................................................................................................................35
3.1.1 Purpose..........................................................................................................................35
3.1.2 Scope.............................................................................................................................36
3.2 GOALS AND TRADE-OFFS.....................................................................................................37
3.3 SYSTEM DECOMPOSITION....................................................................................................40
3.3.1 Layers and Partitions....................................................................................................42
1. INTRODUCTION
1.1 Background
Attendance management is an important to every single organization; it is giving an advantage to
maximize the Organizations management system in the proper manner as well as well it will
have a big contribution of the productivity of organization. Organization will have to keep a
track of people within the organization such as employees and students to maximize their
performance. Managing student attendance during lecture periods has become a difficult
challenge. The ability to compute the attendance percentage becomes a major task as manual
computation produces errors, and wastes a lot of time.
The research will address one the primary school that is called Kelem Amba primary school
which is found in Gulele, Addis Ababa. The school was established by Saint Ruphael in Shih
Hojele Palace, was named after Mr. Abay Tefera since 1984G.C. The school’s name renewed as
Kelem Amba primary school.
Geographical conditions of the school
Kelem Amba High School is located at Gulele sub-city, District 09
In the north, of Belay Zeleke, No.2 primary school
In the South, Medihanalem Preparatory School
In East, Gulele Sub-district
In West, Wondim Gashe School
Village 7 is located near Raphael Church and Shih Hojele Palace.
The area of the school is 7193 square meters.
Around 653 students are served, 39 teachers are employed and it has 17 numbers of classes.
School Director
Key:
Targeted system
Assistant Director
Administration
Staffs
Attendance
paper and it requires a lot of manpower to maintain the records. There are many drawbacks of
this kind of manual attendance system, such as low efficiency, poor accuracy, and high cost.
Therefore, the manual attendance system has been replaced by electronic devices that can record
the employee's work hours automatically.
There is no technology to solve a problem of attendance management for school right now in this
year today we are going to end this stressful old fashion method.
The purpose of this application is to simplify teachers and school administration barrier and
gives to this application to do the rest of things.
It will manage the all-school department such as students, teachers, sanitarian, security and
administration staff arriving and leaving time for their duties.
In order to design this system, object-oriented analysis (OOA) method is used because it enables
us to comprehensively model the system before we develop it. A unified modeling language
(UML) which is a standard modeling language is used to analyze the software systems. Use case
diagram, class diagram, state chart and activity diagrams will be used.
In order to develop this system, a number of Technologies must be studied and understood.
2. SYSTEM ANALYSIS
2.1 Introduction
This section serves as a high-level introduction to the document, and should provide enough
information for the reader to understand what the software system is supposed to do and why it is
being developed. It should also provide a clear and concise overview of the rest of the document,
including what information will be covered in each section.
This document provides an outline of the requirements analysis phase for the development of the
Student Attendance Management System. This system aims to automate the process of tracking
student attendance, managing student information, and generating reports for academic
institutions. The purpose of this document is to gather and analyze the requirements and provide
a comprehensive description of the system's functional and non-functional requirements.
Object oriented analysis (OOA) looks at the problem domain with the aim of producing a
conceptual model of the information that exists in the area being analyzed. Analysis models do
not consider any implementation constraints that might exist, such as concurrence, distribution,
persistence, or how the system is to be built. Implementation constraints are dealt during object-
oriented design (OOD). Analysis is done before the design.
2.1.1 Purpose
The purpose of the requirement analysis document of a student attendance management system
is to provide a comprehensive overview of the requirements that the system must fulfill in order
to meet the needs of stakeholders such as students, teachers, and principal or Administrator. The
purpose of this document is to ensure that all stakeholders have a clear understanding of the
system's goals and objectives, as well as the functional and non-functional requirements that
must be met for the system to be considered a success.
Recording and updating student attendance: The system allows teachers to mark
attendance for each class, and the attendance data will be stored in the system database
for future reference.
Reporting student attendance: The system generate reports on student attendance, such
as daily, weekly, or monthly attendance reports, and allow administrators to view and
download the reports.
Integration with other systems: The system is able to integrate with other systems,
such as student information systems or teacher evaluation systems, to exchange data and
avoid duplication of data entry.
User access control: The system has security controls to regulate who can access the
system and what actions they can perform. This includes user authentication, user roles,
and permissions.
The student management system should have a user-friendly interface that allows teachers and
administrators to easily record student attendance, view attendance records, and generate reports.
The system should be able to handle large amounts of data and support multiple users accessing
the system simultaneously.
Nonfunctional requirements:
The system has high availability and reliability to ensure that it is always available when needed.
The system also has strong security measures in place to protect sensitive student information.
Additionally, the system will be scalable to accommodate future growth and changing
requirements. The system also has a fast response time and be able to handle large amounts of
data.
Design constraints:
The design of the student management system should be modular, allowing for future expansion
and modification of the system. The system also has a compatible with the existing
infrastructure, including hardware and software, to minimize the cost of implementation. The
system also is easy to maintain and have low operational costs.
In addition to the above requirements, the student management system have also consider
accessibility and usability for different users, including teachers and administrators with varying
levels of technical proficiency. The system also is able to generate reports and provide access to
relevant information in a timely and efficient manner. The system should also be designed with
future growth and changing requirements in mind.
2.1.2 Scope
The scope of the requirement analysis document of a student attendance management system
includes defining the system's purpose, goals, and objectives, identifying the stakeholders who
will be impacted by the system, and defining the functional and non-functional requirements that
must be met for the system to be considered a success. Additionally, the scope of the document
should include a description of the system's intended users, the operating environment in which
the system will be used, and any constraints or limitations that will impact the system's
development or deployment.
The software product to be produced is called "Student Attendance Management System
The desktop and web-based application of student attendance management system or SAMS in
scope:
Attendance Recording: Allows teachers to record student attendance for each class,
either in real-time or at a later time.
It will send automatic SMS notifications to Student’s family about their attendance
status.
Attendance Reports: Generates reports on student attendance, including attendance
percentage, number of absences and tardiness, and class-wise attendance reports.
Student Information Management: Stores and manages student information,
including personal details, enrollment information, and attendance history.
Absence Management: Allows teachers and administrators to manage student
absences and tardiness, including the ability to approve or reject requests for absence,
and track attendance exceptions.
Integration with other systems: Integrates with other school systems, such as
student information systems, to provide a seamless transfer of data and to avoid data
duplication.
The desktop and web-based application of student attendance management system or SAMS out
of scope:
Will not able to integrate with existing school systems, such as student information
systems or learning management systems.
It will not provide educational content or resources, beyond the attendance data and
reports generated by the system.
It cannot determine grades or academic progress, as this is outside the scope of the
attendance management system.
Automatically enforce attendance policies or penalize students for poor attendance, as
this is the responsibility of the school administration.
The Student Attendance Management System is designed to assist schools in tracking student
attendance efficiently and accurately. The primary objective of the system is to provide a
streamlined, centralized platform for attendance tracking and reporting, which can help schools
to improve their attendance management processes.
1. Benefits: The use of the Student Attendance Management System can provide several
benefits for schools, including:
1. Goals: The key goals of the Student Attendance Management System include:
2.1.3 Overview
Attendance Management System basically has two main modules for proper functioning. Admin
module is having rights for creating any new entry of faculty and student details. User has a right
of making daily attendance, generating report. Attendance report can be taken by given details of
student details, date, and class.
call their name for five to 10 minutes. The manual attendance system is usually operated on
paper and it requires a lot of manpower to maintain the records. There are many drawbacks of
this kind of manual attendance system, such as low efficiency, poor accuracy, and high cost.
2.3.1 Overview
The existing system for student attendance management uses manual entry in hand-written
registers. This is a time-consuming and error-prone process, with difficulty in retrieving
information and correct data entry. The proposed system aims to overcome these issues by using
a computer-based system with a user-friendly interface to reduce paper work, save time, and
provide accurate results. The system also generates efficient reports. Advantages of the proposed
system include ease of use, faster data entry, high reliability, and a user-friendly interface
Functional requirements for the student attendance management system include the following
terms.
Attendance Recording:
1. Description: The system allows teachers to record student attendance for class in real-
time or at a later time.
2. Criticality: High. The core functionality of the student attendance management system is
to track student attendance, and this requirement is critical to the overall system.
3. Technical Issues: The system have an interface that is user-friendly and intuitive to use,
and able to handle multiple teachers recording attendance simultaneously.
4. Cost and Schedule: The cost of developing this feature will be moderate, and the
schedule will depend on the complexity of the interface design.
5. Risks: The risk of this requirement not being satisfied is low, but there may be issues
with the reliability and accuracy of the attendance data if the user interface is not
designed well.
6. Dependencies with other requirements: This requirement depends on the student
information management feature, as the system have access to student information in
order to record attendance.
Attendance Reports:
The system will used by more than one type of user will be using the student attendance
management system. This is because attendance management systems are typically used by a
variety of stakeholders in a school, including administrators, teachers. Each user group will have
unique requirements and needs for the system, and therefore the system will be design to
accommodate multiple types of users. The system has different levels of access and functionality
for each user group, based on the specific requirements defined for the system.
The type of training required for each type of user in the student attendance management system
would depend on the specific design and functionality of the system, as well as the background
and experience of the users.
For school administrators and teachers, training would typically focus on how to use the system
to input and manage attendance data, generate reports, and use the various features and functions
of the system. They may also need to be trained on how to use the system securely and protect
sensitive information.
The training will be designed to be as intuitive and user-friendly as possible, to minimize the
time and effort required for users to become proficient in using the system. We will include
providing documentation, tutorials, and hands-on training sessions, as well as ongoing support
and resources for users as needed.
It is particularly important that the student attendance management system be easy to learn. This
is because the system will be used by a wide range of users, including school administrators,
teachers. If the system is difficult to use or understand, it can result in increased training costs,
lower user adoption rates, and decreased efficiency in using the system.
Additionally, if the system is complicated or difficult to use, users may be more likely to make
mistakes, input incorrect data, or overlook important features. This can compromise the accuracy
and reliability of the attendance data, which is critical for tracking student attendance and
making informed decisions regarding student attendance patterns and trends.
It is important that users of the student attendance management system be protected from making
errors. This is because errors in attendance data can have serious consequences, such as
inaccurately tracking student attendance, making incorrect decisions based on inaccurate
information, and even impacting the academic performance and overall success of students.
Errors can occur for a variety of reasons, such as incorrect data entry, system malfunctions, or
user misunderstandings of the system's functionality. To minimize the risk of errors, the system
will be designed with robust error-checking mechanisms, such as validation rules, input masks,
and built-in error messages.
The input/output devices that we will use the following common input output devices.
Keyboard and Mouse: These are traditional input devices that are commonly used for entering
data, navigating menus, and performing various action within the system.
2.3.3.2 Documentation
Documentation is an essential part of any software development project, and the student
attendance management system is no exception. The following is a list of some of the types of
documentation that we will require for a student attendance management system:
outcomes.
2. Design Document: A document that describes the overall design of the system, including
the architecture, system components, and interfaces.
3. User Manual: A manual that provides step-by-step instructions for using the system,
including how to enter and retrieve student attendance information.
4. Technical Documentation: Documentation that provides technical information about the
system, such as the software and hardware requirements, the database schema, and the
software development process.
5. Training Materials: Materials that provide training and support for users of the system,
such as instructional videos, tutorials, and training manuals.
The audience for a document on an attendance management system in a primary school we will
include:
Teachers - to ensure that they understand how to use the system and mark attendance
accurately
School administrators - to communicate the benefits and goals of using the system.
The speed, throughput, and response time constraints on a student attendance management
system would depend on the specific requirements and specifications of the system. However,
some general consideration will include:
Response time: The system responds quickly to user input, such as marking attendance,
to minimize wait time for users.
Throughput: The system is able to handle a high volume of attendance transactions
during peak usage times, such as the start or end of a class period.
Speed: The system process and store attendance data in a timely manner to ensure that
the information is up-to-date and accurate.
These constraints are considered during the design and implementation of the attendance
management system to ensure that it meets the needs of the users and provides a smooth and
efficient user experience.
The size or capacity constraints on the data to be processed by a student attendance management
system will depend on the specific requirements and specifications of the system. However,
some general considerations could include:
Data storage: The system has enough storage capacity to store the attendance data for
a sufficient amount of time, such as a school year or longer.
Data processing: The system able to handle a large volume of attendance data
efficiently, such as for a large school with many students and classes.
Data retrieval: The system provides quick and efficient data retrieval capabilities,
such as generating attendance reports.
It is important to consider these constraints when designing and implementing the
attendance management system to ensure that it can meet the needs of the users and
provide accurate and up-to-date information.
The response of a student attendance management system to input errors could depend on our
system. However, some general considerations could include:
Validation: The system validates user inputs, such as student names and IDs, to minimize
the risk of errors.
Error messages: The system provides clear and descriptive error messages to inform the
user of any input errors and suggest corrective actions.
Correction: The system provides an efficient method for correcting input errors, such as
allowing the user to edit the incorrect information.
Logging: The system log input errors for tracking and analysis purposes.
It is important to consider the response to input errors when designing and implementing the
attendance management system to ensure that it provides a smooth and efficient user experience
and minimizes the risk of incorrect information being recorded.
Some general considerations could include:
Robustness: The system be designed to handle unexpected conditions, such as hardware
failures or network disruptions, to minimize the risk of data loss or corruption.
Backup and recovery: The system implements backup and recovery procedures, such as
regular data backups, to minimize the risk of data loss in the event of an extreme
condition.
Error logging: The system log errors and extreme conditions for tracking and analysis
purposes.
Alerts: The system provides alerts, such as notifications or emails, to inform
administrators of extreme conditions and potential issues.
Resilience: The system has built-in resilience features, such as redundant components or
failover mechanisms, to minimize downtime and ensure continuity of service.
The presence and nature of input from systems outside the proposed student attendance
management system would depend on the specific requirements and specifications of the system.
However, some general considerations could include:
1. Integration with other systems: The attendance management system may need to
integrate with other systems, such as a student information system or a scheduling
system, to obtain or share data.
2. Data import/export: The system needs to import data from external sources, such as a
CSV file or another database, or export data to other systems.
It is important to input from systems outside the attendance management system when designing
and implementing the system to ensure that it meets the needs of the users and provides a
seamless and efficient user experience.
The presence and nature of output from the proposed student attendance management system to
systems outside the system depend on the specific requirements and specifications of the system.
However, some general considerations could include:
1. Integration with other systems: The attendance management system need to integrate
with other systems, such as a student information system or a scheduling system, to
share or provide data.
2. Data export: The system needs to export data to external systems, such as a reporting
system or a data analytics tool.
It is important to consider the output from the attendance management system to systems outside
the system when designing and implementing the system to ensure that it meets the needs of the
users and provides a seamless and efficient user experience.
The requirements for reliability for a student attendance management system will be include the
following:
1. Uptime: The system has a high availability and minimal downtime to ensure that it is
available when needed by users.
2. Data accuracy: The system provides accurate and up-to-date information to ensure that
decisions based on the data are correct.
3. Data security: The system protects sensitive data, such as student records, from
unauthorized access, tampering, or loss.
4. Backup and recovery: The system implements backup and recovery procedures, such as
regular data backups, to minimize the risk of data loss and ensure business continuity in
the event of an extreme condition.
5. Error handling: The system handles errors in a consistent and predictable manner to
It is important the requirements for reliability when designing and implementing the student
attendance management system to ensure that it provides a secure and reliable service to the
users and meets the needs of the organization.
Whether the student attendance management system must trap faults depend on the specific
requirements and specifications of the system. Fault trapping is a common technique used to
identify and handle errors and exceptions in a software system.
If fault trapping is a requirement for the system, it will be necessary to implement error handling
mechanisms, such as try-catch blocks or exception handling, to detect and respond to faults in
the system. This can help to prevent the system from crashing or producing incorrect results, and
can also provide information that can be used to diagnose and resolve problems.
If fault trapping is not a requirement, the system may still need to implement error handling
mechanisms to respond to errors in a consistent and predictable manner. However, in this case,
the focus may be more on providing a smooth user experience and recovering from errors rather
than on trapping faults specifically.
The parts of a student attendance management system that are some common parts of such
systems that are often subject to later modification include:
1. User interface: The user interface of the system, including the forms, screens, and reports
used to enter, view, and manipulate data, is often a candidate for modification as the
needs of the users evolve over time.
2. Data storage: The data storage components of the system, including databases, file
systems, and data warehousing, are often subject to modification as the size and
complexity of the data grows over time.
3. Business logic: The business logic of the system, including the algorithms and rules used
to process and manipulate data, is often subject to modification as the needs of the users
It is important to consider the potential for later modification when we designing and
implementing the student attendance management system to ensure that it is flexible and can be
adapted to changing needs over time. It is also important to consult with a IT specialist to
determine the best practices for ensuring modular and scalable design, which can facilitate later
modification.
What sorts of modifications are expected? The sorts of modifications that can be expected for a
student attendance management system would depend on the specific requirements and
specifications of the system, as well as the evolving needs of the users and the organization over
time. Some common modifications that are often made to such systems include:
Adding new features: New features can be added to the system to meet the evolving needs of the
users and the organization, such as new reports, forms, screens, or business logic.
Improving performance: Performance improvements can be made to the system to increase its
speed, throughput, and response time, as the size and complexity of the data grows over time.
Enhancing security: Security enhancements can be made to the system to improve its resistance
to attacks and ensure the confidentiality, integrity, and availability of the data, as the security
requirements of the system evolve over time.
The system can be integrated with other systems and services over time to enable data exchange
and collaboration between systems.
The system can be updated to run on new hardware and software over time to take advantage of
new technologies and improve its performance and reliability.
It is important to consider the potential for later modification when designing and implementing
the student attendance management system to ensure that it is flexible and can be adapted to
changing needs over time. It is also important to consult with a system administrator or IT
specialist to determine the best practices for ensuring that the system can be easily and efficiently
modified over time.
The target equipment for a school attendance management system can be settled at the gate in
one or several locations. It depends on the specific requirements and design of the system.
This would depend on the specific implementation of the student attendance management system
and the environment it will be used in. If barcode technology is used, it is important to consider
the operating conditions and if they may affect the barcode scanning accuracy and functionality.
Factors such as temperature, humidity, light, vibration, and other physical factors can impact the
performance of barcode technology. It's crucial to assess these conditions and ensure that the
system and hardware can operate within the specified range for the environment it will be used
in.
Physical security refers to the protection of equipment, facilities, and data from theft, damage,
and unauthorized access. In the context of a student attendance management system, physical
security could be a concern if the system includes hardware components such as computers or
servers that store sensitive data. It's important to consider the physical security of these
components and implement measures to prevent unauthorized access and tampering. This could
include installing locks, using security cameras, and restricting access to specific areas where the
hardware is stored. It's important to assess the specific physical security requirements of the
student attendance management system and implement appropriate measures to ensure the
protection of the data and hardware components.
Technical measures: This includes the implementation of data encryption, firewalls, access
controls, and security audits. Data encryption ensures that sensitive data is protected and
unreadable to unauthorized users. Firewalls control the incoming and outgoing network traffic,
while access controls restrict access to the system to authorized users. Regular security audits
help to identify potential vulnerabilities and to address them proactively.
It's important to continuously review and update the security measures in place to ensure that the
student attendance management system remains secure and protected against emerging security
threats.
Yes, it is likely that users and groups will be created in the student attendance
management system. This is a common practice in order to control access to the
system and to ensure that sensitive data is only accessible by authorized users.
Users may be assigned different roles and permissions based on their job
responsibilities and needs. For example, teachers may have the ability to record
student attendance, while administrators may have the ability to manage user
accounts and reports.
Groups can be used to group together users with similar responsibilities or privileges.
This makes it easier to manage access to the system and to ensure that all users have
the appropriate level of access based on their role.
It is important to carefully consider the user and group structure of the student
attendance management system in order to ensure that access to sensitive data is
properly controlled and that all users have the appropriate level of access to perform
their job responsibilities.
Encrypting data while it is stored is a common security practice that helps to protect
sensitive information from unauthorized access. The use of encryption can help to
ensure that even if data is stolen or accessed by unauthorized individuals, the
information cannot be easily read or understood.
Whether or not data will be encrypted in the student attendance management system
depends on the specific requirements of the system and the security needs of the
organization. If the data being stored contains sensitive information, such as personal
or financial information, then it may be necessary to encrypt the data while it is stored
in order to ensure the privacy and security of that information.
If encryption is required, it is important to carefully consider the encryption algorithm
and key management practices to ensure that the encrypted data can be properly
secured and that the system is able to access the encrypted data as needed.
If encryption is not required, it is still important to implement other security
measures, such as access control and user authentication, to help protect sensitive data
from unauthorized access.
The frequency of backups for the Student Attendance Management System will depend
on the specific requirements and needs of the school or organization using the system.
However, as a best practice, it is recommended to perform backups regularly, such as
daily or weekly, to ensure that data is protected in the event of a system failure or other
unexpected issue. The frequency of backups can be discussed and determined during the
implementation and deployment phase of the system, taking into account the volume of
data being stored, the criticality of the data, and the organization's preferred level of risk
tolerance.
The responsibility for performing backups of the Student Attendance Management
System can be assigned to the IT or technical support team within the school or
organization. This team would be responsible for setting up and maintaining backup
procedures, monitoring backup jobs, and ensuring that backup data is stored securely. In
some cases, the vendor or supplier of the Student Attendance Management System may
also provide backup and recovery services as part of their support and maintenance
package. Ultimately, the responsibility for backups should be clearly defined and
communicated to all relevant parties, to ensure that data is protected and available in the
event of a system failure or other issue.
The responsibility for installing the Student Attendance Management System will
typically be assigned to the IT or technical support team within the school or
organization. This team would be responsible for setting up the necessary infrastructure,
configuring the system, and ensuring that it is properly integrated with any other existing
systems. In some cases, the vendor or supplier of the Student Attendance Management
System may provide installation and implementation services, including on-site support,
to assist with the setup of the system. The responsibility for installation should be clearly
defined and communicated between the school or organization and the vendor, to ensure
that the system is installed and configured correctly and in a timely manner.
The responsibility for maintaining the Student Attendance Management System will
typically be assigned to the IT or technical support team within the school or
organization. This team would be responsible for ensuring that the system is operating
optimally, fixing any issues that arise, and making any necessary updates or upgrades to
the system. In some cases, the vendor or supplier of the Student Attendance Management
System may provide ongoing maintenance and support services, including bug fixes,
updates, and other technical assistance. The responsibility for system maintenance should
be clearly defined and communicated between the school or organization and the vendor,
to ensure that the system is maintained effectively and any issues are resolved in a timely
manner.
We developed using Python 3.7 and Django 3.2 or higher for the web application
framework.
Use SQLite as the database, stored locally on each windows machine.
Run on Windows 7, Windows 10 and Windows 11 Operating Systems even phone.
And we used visual studio code for text editor purpose and there built-in terminal.
2.3.5.1 Scenarios
Visionary Scenarios: In software engineering, a vision scenario refers to a high-level
description or narrative that outlines the desired future state or vision of a software system or
product.
This sub-section mentions the narrative description of what the users do to perform a certain task
and description of the system procedure.
1. The student logs in to the web-based system with their username and password.
2. The student selects “View Attendance” link in the dashboard.
3. The student sees a table showing their attendance percentage, total days, and missed days
in the week or monthly.
4. The student can also download or print their attendance report as a PDF file.
5. The student logs out or navigates to another page.
1. The Teacher logs in to the web-based system with their username and password.
2. The Teacher selects “Attendance list” link in the dashboard.
3. The Teacher sees a list of students enrolled in the profile by clicking the navigation
arrow.
4. The Teacher checks the boxes for the students who are present, and leaves the boxes for
the absent students unchecked.
5. The Teacher clicks the “Submit” button to save the attendance data.
6. The Teacher gets a confirmation message and can view the attendance summary for the
session.
Use cases_01
Flow of Events:
1. 1. The user opens the website and enters his username and password then press
login “Login” button.
2. The admin can view the attendance sheet submitted by the teacher
3. The system checks the validity of the entered data.
Use cases_02
Use Case_03
Object model: The fundamental objects that must be modelled within the Student Attendance
Management System are:
These objects will be modeled to provide a structural view of the system and to satisfy its
requirements. Each object will have specific attributes and behaviors that will be used to fulfill
the functional and non-functional requirements of the system. For example, the Student object
might have attributes such as "Name," "ID Number," and "Enrollment Date," while the
Attendance Record object might have behaviors such as "Mark Attendance" and "Generate
Report."
Modeling these objects is an important step in the development process because it provides a
clear understanding of the system's structure and helps to identify any potential issues or design
challenges. By defining these objects, the system's architecture can be designed and built in a
more efficient and effective manner.
Object Operations:
1. Add Student: Add a new student to the system with relevant attributes.
2. Update Student: Modify the information of an existing student (e.g., name, contact
details).
3. Delete Student: Remove a student and all associated records from the system.
4. Add Course: Create a new course and define its attributes.
5. Update Course: Modify course details (e.g., instructor, schedule) for an existing course.
6. Mark Attendance: Record the attendance of a student for a particular date and course.
7. Update Attendance: Modify the attendance status of a student for a specific date and
course.
8. View Student Attendance: Display the attendance records of a particular student.
9. View Course Attendance: Display the attendance records for a specific course.
3. SYSTEM DESIGN
3.1 Introduction
Student attendance is a crucial aspect of any educational institution. It helps educators keep
track of student progress, identify areas of improvement, and ensure that students are meeting the
necessary requirements to succeed academically. However, managing attendance manually can
be a tedious and time-consuming task for teachers and administrators.
To address this issue, a student attendance management system can be implemented. This system
automates the attendance tracking process, making it more efficient and accurate. It enables
teachers to record attendance electronically and access attendance reports in real-time.
Administrators can also monitor attendance patterns across classes and identify students who
may require additional support.
In this system design, we will explore the key features and components of a student attendance
management system. We will also discuss the technologies used to develop the system and the
benefits it offers to students, teachers, and administrators. With this system in place, educational
institutions can streamline attendance management, improve student outcomes, and enhance the
overall educational experience.
3.1.1 Purpose
The purpose of the system to which this document applies is to provide an automated solution for
student attendance management in educational institutions. The system aims to simplify and
streamline the attendance tracking process for teachers and administrators, while also improving
accuracy and reducing the likelihood of errors or fraud. The system will allow teachers to mark
attendance electronically, access attendance reports in real-time, and monitor attendance patterns
across classes. Administrators will also have access to attendance data, which can be used to
identify areas of improvement and provide additional support to students who require it. The
system is intended to improve student outcomes and enhance the overall educational experience
by enabling educators to make informed decisions based on attendance data.
3.1.2 Scope
The scope of a system design refers to the boundaries of the system, defining what is included
and excluded from the system. It also defines the objectives and requirements of the system, and
outlines the features and functionalities that will be developed.
In the case of a student attendance management system, the design scope would include the
following:
I. Objectives: The primary objective of the system is to provide an automated solution for
tracking and managing student attendance. This will enable educators to monitor
attendance patterns, identify areas of improvement, and provide support to students who
require it. The system will also improve efficiency by reducing the time and effort
required for attendance tracking.
II. Requirements: The system must be capable of recording attendance electronically,
generating attendance reports, and providing real-time access to attendance data. It must
also be secure and reliable, with appropriate measures in place to prevent errors and
fraud.
III. Features and functionalities: The system will include features such as attendance
tracking, attendance reporting, and data analysis tools. It will also include user
management functionality, enabling administrators to add or remove users and define
user roles and permissions. The system may also include additional features such as SMS
or email notifications, integration with other systems, and the ability to export attendance
data.
The Web based application of student attendance management system or SAMS out of scope:
It will not accessible from any device with an internet connection, allowing students
and teachers to access attendance data from anywhere.
Will not able to integrate with existing school systems, such as student information
systems or learning management systems.
It will not provide educational content or resources, beyond the attendance data and
reports generated by the system.
It cannot determine grades or academic progress, as this is outside the scope of the
attendance management system.
The reason we minimizes the scope that will get complexity because of other subsystem
functionalities and also it cost to add up other functionalities.
o Performance Criteria:
Response time: The system will respond quickly and efficiently to user requests, with
minimal delay or lag.
Dependability: The system will be reliable and dependable, with minimal downtime or
system failures.
Maintenance: The system will require minimal maintenance, with updates and fixes
delivered seamlessly and with minimal disruption to system performance.
o Security Criteria:
Security: The system will be secure, with appropriate measures in place to prevent
unauthorized access, data breaches, or cyber-attacks.
o End User Criteria:
Usability: The system will be user-friendly, with an intuitive interface that is easy to use for
teachers, administrators, and other stakeholders.
Customization: The system will be customizable to meet the unique needs of different
educational institutions, including the ability to define user roles and permissions, set
attendance policies, and generate custom reports.
o Functionality Criteria:
Attendance tracking: The system will accurately track attendance for all students in
all classes and provide real-time access to this data for teachers and administrators.
Reporting: The system will generate custom reports and analytics to enable educators
to identify attendance patterns and trends and make informed decisions based on this
data.
Trade-offs may need to be made between the non-functional and functional requirements of a
system. For instance, if the security requirement is high, it may cause additional authentication
steps, which could affect the usability of the system. In this case, the usability requirement may
need to be adjusted to balance the security requirement. Similarly, if the performance
requirement is high, it may lead to more complex system design, which could impact the
maintainability of the system. In this case, the trade-off could be between performance and
maintainability.
Trade-offs
Trade-offs are inevitable in trying to achieve a particular design goal. The following are
examples of trade-offs that are relevant to the Student Attendance Management System:
Extensibility versus Cost: While the system will be designed to allow for new features
to be added, doing so may increase the development and deployment costs for both users
and developers.
Delivery Time versus Functionality: As the Student Attendance Management System is
a course project with a specific deadline, there may be some compromise on functionality
Design Priority:
Usability: The system will be user-friendly, with an intuitive interface that is easy to use
for teachers, administrators, and other stakeholders. The system will have a consistent
and well-designed user interface, with clear navigation, intuitive workflows, and
contextual help.
Reliability: The system will be reliable and dependable, with minimal downtime or
system failures. The system will be designed to handle high traffic volumes, with
appropriate failover and recovery mechanisms in place to ensure that the system remains
available.
Security: The system will be secure, with appropriate measures in place to prevent
unauthorized access, data breaches, or cyber-attacks. The system will be employ
encryption and secure communication protocols, and user access will be controlled
through role-based access controls and other security mechanisms.
Functionality: The system will provide the necessary functionality to meet the needs of
educational institutions, including attendance tracking, reporting, and integration with
other educational systems. The system will be customizable to meet the unique needs of
different educational institutions.
Performance: The system will respond quickly and efficiently to user requests, with
minimal delay or lag. The system will be designed to handle high traffic volumes, with
appropriate load balancing and performance tuning mechanisms in place.
Maintenance: The system will be require minimal maintenance, with updates and fixes
delivered seamlessly and with minimal disruption to system performance. The system
will be designed with modularity and scalability in mind, making it easy to add or modify
functionality as needed.
By prioritizing usability, reliability, security, functionality, performance, and maintenance, the
Student Attendance Management System will be provide an effective and efficient solution for
attendance tracking and management.
maintains their personal and contact information. For capturing attendance data and
storing it in the database. It includes components for taking attendance, handling
exceptions, and generating reports.
Database Management System: This subsystem is responsible for managing the
database that stores all the attendance data. It includes components for data storage,
retrieval, and management.
Reporting System: This subsystem is responsible for generating various types of reports,
such as attendance reports, summary reports, and exception reports. It includes
components for data aggregation, filtering, and visualization.
Communication System: This subsystem is responsible for facilitating communication
between different components of the system, as well as with external systems or services.
It includes components for scanning Student ID by Barcode reader, printing for
attendance report and other device also considered.
Registration Attendance
Tracking DB Management
Management Sys
Sys.
Student Attendance
Management System (SAMS)
Reporting Communicatio
System n System
The major subsystems are interrelated and interact with each other to achieve the overall goal
of the system.
The "Registration Management" subsystem registers a student and the "Report Management"
subsystem also interacts with each other. Therefore, the subsystems are interconnected and
rely on each other to function properly. Any changes made to one subsystem may affect the
others, and it is essential to consider the interdependencies of the subsystems when designing
or modifying the system.
In the case of SAMS, the subsystems may need to call on each other's services, such as the
"Registration Management" subsystem needing to verify a student's enrollment in a specific
course with the "Course Management" subsystem. However, it's also possible that each
subsystem could operate independently without direct communication with other subsystems.
Ultimately, it depends on the design of the system and the specific requirements for each
subsystem.
4. The reporting system also depends on the database management subsystem to retrieve
additional information to include in reports.
5. The communication subsystem depends on the registration system to obtain contact
information for students and instructors.
The deployment diagram show how software components are physically deployed on processors;
that is, the deployment diagram shows the hardware and software in the SAMS system and the
middleware used to connect the different components in the system.
In order to develop this system, a number of Technologies must be studied and understood. This
includes hardware and software platform for the client environment and development.
In this project, a programming language python and relational databases (such as Postgre SQL)
as back-end tool which runs on Windows will be used.
PostgreSQL is used because it is a relational database management system. Python are best
matches for developing Web application.
Table 10: The existing hardware platform of the client environment
The system provides an access to the database without any delay and this period must not exceed
5 seconds depending on the computer speed. The system can support up to 15 simultaneous users
against the central database at any given time.
3.5.2 Connectivity
Data base
Client server
The connectivity between a client computer and a server/database typically involves a client-
server architecture. The client computer connects to the server over a network, sends requests for
information or services. The server then processes the requests and sends back responses to the
client.
In terms of the database, the server is responsible for managing the database and responding to
queries made by the client. The client can send database queries to the server to retrieve or
modify data. The server then executes the queries and sends back the results to the client. This
communication between the client and server over a network forms the basis of client-server
architecture.
Communication Protocols
For wired networking, TCP/IP is used with common protocols like HTTP, HTTPS, FTP, SSH,
and SNMP for device management.
For wireless, TCP/IP is also used with standard encryption like WPA2 for secure connections.
The WIFI network has multiple redundant SSIDs and uses VLANs to segment user traffic.
Interaction Mechanisms
The system uses synchronous request-response interactions between the student mobile apps and
backend servers. Requests use HTTP/HTTPS protocols with REST APIs.
The mobile apps send attendance information to the servers which validate and process the data.
The synchronous nature allows the apps to receive real-time feedback.
Latency is generally low within the LAN. The wired connections provide reliable high-
throughput channels. The WIFI network provides solid coverage across campus with seamless
roaming and redundancy to mitigate any potential wireless disruptions. The synchronous
protocols allow real-time student attendance tracking with minimal delays
The system also uses main memory to store data temporarily during processing, such as when
taking attendance or generating reports. The attendance tracking system component of SAMS
records and maintains the attendance records of students. This information is then stored in the
database, which can be accessed by other subsystems for generating reports or checking student
performance.
The communication subsystem is responsible for facilitating communication between the client
computer and the server, as well as between subsystems. It uses a variety of protocols to ensure
reliable and secure data transfer between different components of the system.
Overall, the system efficiently manages data using a combination of database management
systems, main memory, and communication subsystems.
The SAMS is designed as a centralized system, then the data will be stored on a central server
and accessed by client devices through a network connection. In this case, the data is not
distributed.
It may be desirable to have a database that is extensible to allow for future growth and changes in
the system.
For example, if the system needs to be scaled up to accommodate more students, courses, or
data, an extensible database can make it easier to add new fields, tables, or other elements to the
database structure without having to overhaul the entire system. Additionally, an extensible
database can make it easier to integrate new features or modules into the system as needed.
However, it's important to balance the need for extensibility with other factors such as
performance, security, and maintainability. If the database becomes too complex or unwieldy, it
can impact the overall performance and reliability of the system. Therefore, careful consideration
and planning should be done before deciding to make a database extensible.
Top of Form
The average request (query) rate and worst-case scenario would depend on various factors such
as the number of students, the frequency of attendance tracking, the number of queries made by
the system users, and the system design. In our case we think the average request is 4mb/s and
the worst case is 8mb/s.
Mostly the database accessed when the student come to school in the morning and leave the
school in the afternoon. Sometime the teacher or the school administrator checking the system.
For example, a query to retrieve a single student's attendance record may be smaller in size
compared to a query to retrieve attendance records for an entire class or a specific date range.
In general, the size of the queries may not be very large and can be considered relatively small in
terms of data transfer. However, in worst case scenarios where large amounts of data are being
requested or the query is complex, the size of the request (query) may become much larger and
require more resources to process. This could lead to slower response times or even system
crashes if not properly managed.
In a student attendance management system, it may be necessary to archive certain data for
future reference and auditing purposes. This may include attendance records, student information
and report data. The database will archive the records after 6 months of Storage in the database.
Yes, the system will encrypt the database and transmission communication protocols unit they
are delivered to the database in the server
The files in the set have a relational nature because they are organized and indexed within a
structured database. Even though the method of accessing them is object-oriented, they are not
stored as objects.
The user interface will prompt the user to enter their login credentials, which typically consist of
a username and password. These credentials are then verified against a database or other
authentication source, such as Active Directory or LDAP, to determine whether the user is
authorized to access the system.
A server-class machine or cluster of machines is used to handle the load of global resource
management, including tasks such as load balancing, failover, and synchronization. This may
involve using specialized hardware such as network load balancers, dedicated storage devices,
and redundant power supplies to ensure high availability and reliability.
In a distributed system, other subsystems can discover the subsystem service using a service
discovery mechanism. This mechanism involves a registry or a directory where subsystem
services can be registered and other subsystems can look up these services. The registry can
provide information about the service, such as its endpoint or address, protocol, and other
metadata.
This class firstly listens the login subsystem, when login subsystem informs the Control System
about any of the users start working, Control System wants the users to store the data in the
database, Control System informs the current subsystem user about start working.
Procedures do not wait for input. Instead, they typically expect input parameters to be passed to
them when they are called. Once the input parameters have been passed, the procedure will
execute its logic and return a result or output.
In a dispatcher-based system, there is typically a single control flow residing within the
dispatcher component. The dispatcher receives requests from clients and dispatches them to the
appropriate subsystems or components within the system. The control flow of the dispatcher
determines how requests are processed and how subsystems interact with each other.
Yes, a dispatcher can wait for events and dispatch them to the appropriate procedure that will
handle the event. This is known as the callback mechanism, where the procedure provides a
callback function or procedure to the dispatcher, which is called when the event occurs. The
dispatcher then passes the event to the callback procedure for processing, allowing the program
to respond to the event asynchronously and without blocking other operations. This approach is
often used in event-driven programming and can be implemented using various programming
languages and frameworks.
Attendance tracking subsystem: This subsystem can run concurrently with other subsystems,
such as registration or reporting, as it records attendance data in real-time.
Reporting subsystem: This subsystem can be run concurrently with other subsystems, as it
generates reports based on attendance data stored in the database.
Database management subsystem: This subsystem can run concurrently with other subsystems,
as it manages the storage and retrieval of attendance data and user information.
User authentication subsystem: This subsystem can run concurrently with other subsystems, as it
authenticates users' credentials when they log in to the system.
In a student attendance management system, both procedure calls and threads can be used to
implement process control. Procedure calls can be used to coordinate the actions of different
subsystems, while threads can be used to handle incoming requests and perform tasks
concurrently.
Procedure calls can be used to coordinate the actions of different subsystems and components in
the system. For example, a subsystem responsible for attendance tracking may call a procedure
in the database management subsystem to retrieve student information or update attendance
records.
Threads can also be used to implement process control in a concurrent system. Each thread
represents a separate execution context that can perform tasks concurrently with other threads.
For example, a thread can be created to handle incoming requests for attendance data, while
another thread can be responsible for updating attendance records in the database.
Is the control centralized? Yes, the IT administrator is responsible for managing the database
control, and a central IT support manages the server administration.
b) Do subsystems have individual user interfaces and event loop management? Yes, each
subsystem uses its own interface and event loop handlers.
3.9.1 Initialization
As soon as the SAMS deployment setup finished the system will be initialized. When we come
to the system at start up the system requires authenticated user to provide the required
information to get access. Then the server populates the client machine with what the client
machine has asked for.
While the server starts at first, it will load all the necessary database files with their related pages
and student information. User friendly approach is considered while designing the UI so that
there will not be any ambiguity and complication while trying to access the system.
The dynamic model of the system start-up describes the behavior of the student attendance
management system as it goes from an uninitialized state to a fully operational state. The
following is a general description of the dynamic model of the system start-up:
System Initialization: The system initializes when the user or system administrator starts the
system. This involves starting up the system software and hardware and loading the
necessary configuration files.
Database Initialization: Once the system is initialized, the database is initialized by creating
necessary tables, indexes and views. The database is also populated with relevant data such
as student information, course information, and faculty information.
User Login: After the database is initialized, the system prompts the user to login. The user
must enter their credentials to access the system. The system verifies the user's credentials
and grants access if they are valid.
User Interface: Once the user logs in, the system displays the user interface. The user
interface allows the user to interact with the system, such as entering attendance data,
generating reports, and managing student records.
Attendance Tracking: The system continuously tracks attendance data as it is entered by
faculty members or other users. The system updates the database with this information in
real-time.
System Shutdown: When the user is finished using the system, they can log out, which will
initiate the system shutdown process. The system saves any unsaved data and safely shuts
down the system software and hardware.
During the start-up of the student attendance management system, several types of data must
be accessed to ensure that the system is initialized correctly and ready for use. Configuration
data, which includes system settings and parameters, is crucial for the system to operate
correctly. This data may include database connection settings, time zones, and other
configuration parameters. User data, such as usernames, passwords, and authentication
information, must also be accessed to authenticate the user during the login process. The
student data is critical for the system to display student information and track attendance.
This data may include student names, ID numbers, and contact information.
The student attendance management system's user interface is a vital tool that enables the user to
interact with the system and manage student attendance. Upon successful login, the user
interface displays on the screen, presenting a dashboard that gives the user an overview of their
attendance data and records. Navigation options are also provided, allowing the user to move
seamlessly between different sections of the system. For example, the user can navigate to the
attendance tracking section to view or input attendance data or navigate to the student records
section to manage student information.
One of the significant features of the user interface is its capability to allow the user to input
attendance data. The user can select the relevant course and student and enter the attendance
information. The system provides several input options, such as checkboxes or dropdown menus,
to make the input process more manageable.
Another feature of the user interface is its ability to generate reports. The user can generate
attendance reports or course progress reports, which can be used to monitor student performance
and attendance. The user interface also provides a way to manage student records, including
adding or removing students from courses, updating student information, and viewing attendance
records.
The user interface also allows the user to configure system settings, such as changing the time
zone or adjusting user permissions. The system aims to make attendance management as
efficient and straightforward as possible by providing an intuitive and user-friendly interface.
How does the system present itself to the user?
As the user logs into the student attendance management system, the system presents
itself through its user interface. The user interface is the primary way for the user to
interact with the system and manage student attendance. At start-up time, the user
interface displays a dashboard that provides an overview of the user's attendance data
and records.
In addition, the user interface offers navigation options, allowing the user to move
between different sections of the system with ease. For example, the user can
navigate to the attendance tracking section to view or input attendance data, or to the
student records section to manage student information.
Overall, the system presents itself to the user in a user-friendly and intuitive way,
providing the necessary tools and options to manage student attendance effectively.
The user interface is designed to make attendance management as efficient and
straightforward as possible.
3.9.2 Termination
The main reason to termination on the system is finishing the activity. On termination the overall
activity including any updating on the database will be save.
Are single subsystems allowed to terminate?
Yes, single subsystems are allowed to terminate within a larger system. In fact, termination of
subsystems is a common occurrence in many systems. When a subsystem terminates, it typically
means that it has completed its task or is no longer needed, and the resources it was using can be
released for use by other subsystems. However, it's important to ensure that the termination of a
subsystem does not cause any adverse effects on the rest of the system. Proper design and testing
of the system can help ensure that subsystem termination occurs in a safe and controlled manner.
NO.
Are local updates communicated to the database when the system or a subsystem
terminates?
Yes. Local updates are communicated to the database when a subsystem terminates to ensure
that all changes made during the subsystem's operation are saved to the database. For example, if
a subsystem is responsible for updating student attendance records, it may communicate these
updates to the database when it terminates so that the changes are saved and can be accessed by
other subsystems.
3.9.3 Failure
It is essential to consider potential failure scenarios when designing a system, especially in a
distributed environment where communication links between nodes are critical. In the case of
node or communication link failures, the system should have mechanisms in place to handle the
situation and maintain its overall functionality.
To handle hardware and the software failures, the user’s errors should be handled by using error
handling mechanisms and the system will use permanent storage database. This increases the
accuracy of the maintenance activities of the system. The system will use backup database. In
case of database failure, we use this backup to restore. Thus, Backup policy and procedures
should be enforced.
Reliability was also taken into account, and measures were put in place to ensure that subsystems
are fault-tolerant, and system downtime is minimized. This means that the system must be
reliable and available 24/7. To guarantee the security of the system, the subsystems were
designed with security in mind. User authentication, access control, and encryption were
implemented to prevent unauthorized access to sensitive information such as student data and
attendance records.
Scalability was also a major design issue that was addressed. The system should be able to
handle an increasing number of users and data over time. Therefore, the subsystems were
designed to be scalable and flexible, allowing for easy addition of new features and
functionalities.
To address these design issues, certain design decisions were made. For instance, a distributed
architecture was chosen to improve system performance and scalability. The subsystems were
designed to communicate asynchronously to minimize communication overhead and reduce
system latency.
Several proposals were considered but rejected during the design process. For example, using a
centralized database to store all student data and attendance records was deemed impractical, as
it would result in a single point of failure and poor system performance. Instead, a distributed
database was used, with each subsystem having its own database to improve reliability and
performance.
The main arguments for the design decisions made were the need for scalability, fault-tolerance,
and security. On the other hand, the main argument against some proposals was the potential
impact on system performance and reliability.
Important issues that are still unresolved include improving system availability in the event of
node or communication link failures and addressing potential security vulnerabilities that may
arise in the future. These issues are still being actively researched, and solutions will be
implemented as they are discovered.
4. IMPLEMENTATION
4.1 Overview
This section briefly lists the tools and technology utility, source code, conclusion and future
work of the system. It also considers the major interface that can describe the implementation of
the proposed system. This system entitles Student attendance management implemented on
windows environment on which it supports network infrastructure. It should be first installed on
server and accessed through a network.
<div class="row">
<div class="col-sm-10">
<img src="http://127.0.0.1:8000/media/logo/logo.jpg" width="190" height="150">
</div>
<div class="col-sm-2">
<img class="rounded-circle" src="http://127.0.0.1:8000/media/logo/school-house.jpg " width="200"
height="150">
</div>
<hr>
</div>
<hr>
<div class="row justify-content-center bg-light">
<div class="col-md-4">
<form class="card p-3" method="post" enctype="multipart/form-data" style="background-color:
rgb(235, 229, 229);">
<h3 class="font-weight-bold text-monospace text-success text-center">Login</h3>
<hr>
{% csrf_token %}
<div class="form-group ">
{{ form|crispy }}
</div>
<button type="submit" class="btn btn-light text-light" style="background-color:
#21D192">Login</button><br>
<a href="#Not configuring" class="btn btn-light text-light" style="background-color:
#21D192">Change Password</a>
</form>
</div>
</div>
<hr>
>
© 2023 Copyright:
<a class="text-dark" href="https://mdbootstrap.com/"
>KAP School</a
>
</div>
</footer>
</div>
</body>
</html>
{% endblock %}
Registration Template
{% extends "base.html" %}
{% load static %}
{% load crispy_forms_tags %}
{% block title %}
KAPS | Registration
{% endblock %}
{% block registration %}
<div class="container mt-3">
<div class="row">
<div class="col-sm-10">
<img src="http://127.0.0.1:8000/media/logo/logo.jpg" width="190" height="150">
</div>
<div class="col-sm-2">
<img class="rounded-circle" src="http://127.0.0.1:8000/media/logo/school-house.jpg " width="200"
height="150">
</div>
<hr>
</div>
<hr>
<div class="row justify-content-center bg-light">
<div class="col-md-5">
def registration_view(request):
if request.method == 'POST':
form = UserProfileRegistrationForm(request.POST, request.FILES)
if form.is_valid():
user_profile = form.save()
user = user_profile.user
group_name = user_profile.user_type.lower() + 's'
try:
group = Group.objects.get(name=group_name)
except ObjectDoesNotExist:
pass
else:
group.user_set.add(user)
return redirect('accounts:login')
else:
#form = UserProfileRegistrationForm(user=request.user)
form = UserProfileRegistrationForm()
return render (request, 'accounts/registration.html', {'form': form})
def login_view(request):
if request.method == 'POST':
form = AuthenticationForm(request=request, data=request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
user_profile = UserProfile.objects.filter(user=user).first()
def logout_view(request):
logout(request)
return redirect('accounts:login') # redirect to your desired page after logout
class UserProfileRegistrationForm(forms.ModelForm):
username = forms.CharField(max_length=255)
firstname = forms.CharField(max_length=255)
fathername = forms.CharField(max_length=255)
email = forms.EmailField(max_length=255)
phone = forms.CharField(max_length=255)
password = forms.CharField(widget=forms.PasswordInput)
confirm_password = forms.CharField(widget=forms.PasswordInput)
profile_image = forms.ImageField()
user_type = forms.ChoiceField(choices=UserProfile.USER_TYPE_CHOICES)
grade = forms.ChoiceField(choices=UserProfile.ANOTHER_USER_TYPE_CHOICES)
home_room = forms.ChoiceField(choices=UserProfile.ASSIGN_HOME_ROOM)
#user = forms.ModelChoiceField(queryset=User.objects.none(), widget=forms.HiddenInput())
class Meta:
model = UserProfile
fields = ['username', 'firstname', 'fathername', 'email', 'phone', 'password', 'confirm_password',
'profile_image', 'user_type','grade', 'home_room']
def clean(self):
cleaned_data = super().clean()
password = cleaned_data.get('password')
confirm_password = cleaned_data.get('confirm_password')
username = cleaned_data.get('username')
phone = cleaned_data.get('phone')
if password != confirm_password:
raise forms.ValidationError("Passwords do not match.")
if User.objects.filter(username=username).exists():
if UserProfile.objects.filter(phone=phone).exists():
raise forms.ValidationError("Phone Number is already taken.")
return cleaned_data
user_type = self.cleaned_data['user_type']
grade = self.cleaned_data['grade']
home_room = self.cleaned_data['home_room']
user_profile = UserProfile(
firstname=self.cleaned_data['firstname'],
fathername=self.cleaned_data['fathername'],
email=self.cleaned_data['email'],
phone=self.cleaned_data['phone'],
profile_image=self.cleaned_data['profile_image'],
user=user,
user_type=user_type,
grade = grade,
home_room=home_room
)
if commit:
user_profile.save()
return user_profile
class LoginForm(AuthenticationForm):
username = forms.CharField(label='Username', max_length=100)
password = forms.CharField(label='Password', widget=forms.PasswordInput)
class UserProfile(models.Model):
USER_TYPE_CHOICES = (
('Principal', 'Principal'),
('Teacher', 'Teacher'),
('Student', 'Student'),
)
ANOTHER_USER_TYPE_CHOICES = (
('1', '1'),
('2', '2'),
('3', '3'),
('4', '4'),
('5', '5'),
('6', '6'),
('7', '7'),
('8', '8'),
)
ASSIGN_HOME_ROOM = (
('1', '1'),
('2', '2'),
('3', '3'),
('4', '4'),
('5', '5'),
('6', '6'),
('7', '7'),
('8', '8'),
)
firstname = models.CharField(max_length=255)
fathername = models.CharField(max_length=255)
email = models.EmailField(max_length=255, unique=True)
phone = models.CharField(max_length=255)
profile_image = models.ImageField(upload_to='profiles/')
timestamp = models.DateTimeField(default=timezone.now)
user_type = models.CharField(max_length=50, choices=USER_TYPE_CHOICES)
grade = models.CharField(max_length=50, choices=ANOTHER_USER_TYPE_CHOICES)
home_room = models.CharField(max_length=50, choices=ASSIGN_HOME_ROOM)
qr_code = models.ImageField(upload_to='QRCodes/', blank=True)
def __str__(self):
return self.user.username
Attendance Model
from django.db import models
from django.contrib.auth.models import User
from accounts.models import UserProfile
from django.utils import timezone
# Create your models here.
class Attendance(models.Model):
qr_code = models.CharField(max_length=255)
attended_user = models.OneToOneField(UserProfile, on_delete=models.CASCADE,
related_name='attendance')
registered_by = models.ManyToManyField(UserProfile, related_name='registration')
attended_date = models.DateTimeField(default=None, blank=True)
def __str__(self):
return self.attended_user.user.username
app_name = 'accounts'
urlpatterns = [
path('registration/', registration_view, name='registration'),
path('login/', login_view, name='login'),
path('logout/', logout_view, name='logout'),
]
app_name = 'attendance'
urlpatterns = [
path('principal/', PrincipalListView.as_view(), name='principal'),
path('teacher/', TeacherListView.as_view(), name='teacher'),
path('student/', StudentListView.as_view(), name='student'),
User Interface
Students Profile
Edit
Delete
Principals
Taking Attendance
Displaying
5.1 Conclusion
This document presented a comprehensive analysis of requirements for the proposed Student
Attendance Management System.
The current manual attendance tracking process is inefficient, error-prone, and hinders analyzing
trends. The system aims to automate attendance tracking through an intuitive platform.
Teachers can record attendance electronically which gets stored securely in a database. Key
functional requirements include attendance marking, reporting, student profiles, and integration.
Non-functional requirements like usability, security and performance were discussed. An object-
oriented approach was used for modeling. Hardware, software and infrastructure needs outlined.
The design focuses on modularity, scalability and maintainability for flexibility. This analysis
provides foundation for next stages of system design and implementation.
Further requirement refinements can be made during design phase. Overall, this document
analyzed requirements for the Student Attendance System to serve as basis for design and
implementation.
More advanced analytics and visualizations can be added to the reporting module to gain deeper
insights into attendance patterns. Features like integrating predictive analytics to identify
students at risk of low attendance or adding interactive charts and graphs for data visualization
can be implemented.
Automated notifications and alerts can be incorporated to inform parents, teachers, and
administrators about attendance issues in real-time via SMS, email, or push notifications.
Configurable rules can trigger alerts based on conditions.
Biometric Attendance
Biometric integration can enhance accuracy and security of attendance marking using
fingerprint, face recognition or iris scanning devices. This module can be integrated with the
attendance tracking component.
Dedicated mobile and tablet apps can be developed to allow students and teachers to access the
system conveniently via handheld devices. This will make attendance management possible from
anywhere.
More advanced role-based access control can be implemented to manage permissions and access
levels, ensuring teachers, students, and admin have appropriate system access.
API Integration
API support can be provided to integrate with third-party applications like learning management
systems, student information systems, and other administrative software systems used by
schools.
By continually enhancing the Student Attendance Management System with new features, it can
become an indispensable tool for automating and streamlining critical school administration
processes. The system can be evolved to suit the changing needs of academic institutions.
References
Books References
WEBSITES
1. https://www.coursehero.com/file/145528685/MicroLink-Information-
Technology-Collegepdf/
2.https://www.academia.edu/23694177/
Software_Requirements_Specification_for_Automated_Attendance_Syste
m_Release_1_0
3. http://www.w3schools.com/asp.net/
4. http://www.cramerz.com/aspdotnet
5. http://www.dotnetspider.net/
6. http://www.stackoverflow.com
GLOSSARY
A I
interactions.
Class diagram: UML notation
representing
R
flat files.
development D
.
Declaration
We, the undersigned, declare that this project is our original work and
has not been presented for degree in any other university or college,
and that all sources of materials used for the project have been
acknowledged.
Declared By: