I Was Here – PHP Student Attendance Management System

[Sourceforce]
Version 1.0

 

 

 

SECTION A

INTRODUCTION

WHAT IS “I WAS HERE”?

I Was Here is a simple, free, and open source PHP Student Attendance Management System. It may not be the best in the world, but it is at least a complete basic system and will give the developers a quick boost with all the essentials done.

Built using pure HTML, CSS, and Javascript – I Was Here has no dependency on third-party client-side frameworks such as jQuery or Bootstrap. No need to learn any of those, and no added script bloating.

 

LICENSE

I Was Here is released under the MIT License – You are free to use it for your own personal and commercial projects, modify it as you see fit. On the condition that there the software is provided “as-is”. There are no warranties provided and “no strings attached” – Code Boxx and the authors are not liable for any claims, damages, or any liabilities.

 

CREDITS

I Was Here is made better with the following:

 

 

SECTION B

DOWNLOAD & INSTALLATION

DOWNLOAD & REQUIREMENTS

You can download I Was Here from Sourceforge. I Was Here has not been extensively tested, but it should work well with most modern XAMPP installations –

  • PHP 5.6 and above.
  • Apache web server.
  • Should work on IIS as well.

 

HOW TO INSTALL

  • Create a new database and import iwashere.sql inside the lib folder.
  • Update the database settings in lib/config.php
  • Done! The default administrator account is admin@iwh.com and password is 123456.

 

 

SECTION C

HOW TO USE

STEP 1) REGISTER USERS

First, register all the students under the “users” tab. You can use the import function to quickly upload a list of students.

 

STEP 2) REGISTER COURSES

Next, register your available courses under the “courses” tab. For example, English, Math, Science, Computer, Marketing, etc…

 

STEP 3) STUDENTS TO COURSES

When you are done with registering the students and courses, it is time to assign the students to their respective courses. Again, you can use the import function to quickly upload a list of students.

 

 

STEP 4) CREATE CLASSES

Following up, create your classes under the “attendance” tab.

 

STEP 5) TAKE ATTENDANCE

Finally, take the attendance of the students in the class. You can export the attendance sheet into a spreadsheet if you want.

 

SECTION D

FOR THE DEVELOPERS

FOLDER STRUCTURE

    • / The base project folder holds all the landing pages and AJAX handlers.
    • lib/ This is the library folder that holds all the config and critical library files. Not publically accessible.
    • public/ This is where all the client-side scripts and assets are put in – Images, CSS, and Javascript.
    • vendor/ Contains PHPSpreadSheet.

 

DATABASE TABLES

user – The teachers and students.
FieldDescription
user_idThe user ID, primary key, auto-increment.
user_nameName of the user.
user_emailEmail of the user, unique and does not allow duplicates.
user_roleTeacher or Student.
user_passwordAccount password.
course – Courses you offered.
FieldDescription
course_codeThe course code, primary key.
course_nameName of the course.
course_descA short description of the course.
course_students – Which student is enrolled in which courses.
FieldDescription
course_codeThe course code, primary key.
user_idThe user ID, primary key.
class – Classes conducted.
FieldDescription
class_idThe class ID, primary key, auto-increment.
couse_codeThe course code.
class_dateDate and time of the class.
class_descShort description of the class.
attendance– Attendance records.
FieldDescription
class_idThe class ID, primary key.
user_idThe user ID, primary key.

 

 

GENERAL FLOW

The entire project folder may seem to be a little complicated at the first look, but it is actually pretty well organized and straightforward. The generic sequence of how the scripts will be loaded when a user access a page is:

  • The landing page will be loaded first when the user accesses a page. For example, the courses page is courses.php in the base folder.
  • The related Javascript files are all placed inside the public folder – For example, courses.js in the public folder.
  • All user actions will be processed via AJAX. For example, adding a new course will be handled by the ajax-courses.php file.
  • Finally, the library files deal with all the database SQL processing – For example, LIB-courses.php in the lib folder.

 

COMPONENTS & FILES

ComponentRelated Files
UsersLanding page – users.php

Javascript – public/users.js

AJAX handler – ajax-users.php

Library file – lib/LIB-user.php

CoursesLanding page – courses.php

Javascript – public/courses.js

AJAX handler – ajax-courses.php

Library file – lib/LIB-course.php

ClassesLanding page – classes.php

Javascript – public/classes.js

AJAX handler – ajax-class.php

Library file – lib/LIB-class.php

AttendanceNote – This is a component that allows students to view their own attendance records only.

Landing page – attendance.php

Javascript – public/attendance.js

AJAX handler – ajax-attendance.php

Library file – lib/LIB-attendance.php

LoginLanding page – login.php

Javascript – public/login.js

AJAX handler – ajax-session.php

Library file – lib/LIB-user.php

 

SESSION VARIABLES

Well, the only thing that is put into the session is the user information upon successful login.

$_SESSION[‘user’] – An array containing the current logged in user.
FieldDescription
idThe user ID.
nameUser name.
emailUser email.
roleUser role.

 

2 thoughts on “I Was Here – PHP Student Attendance Management System”

Leave a Comment

Your email address will not be published. Required fields are marked *