Skip to content

A PHP and MySQL web app to manage student and teacher attendance with secure login, Excel import, and dashboard analytics.

License

Notifications You must be signed in to change notification settings

Sa3d-Ka/Attendance-Management-System-School

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Attendance Management System

PHP Version MySQL Bootstrap License

A comprehensive full-stack attendance management system designed for educational institutions. Built with modern web technologies including PHP (OOP & PDO), MySQL, JavaScript, and Bootstrap for a responsive and intuitive user experience.

πŸŽ₯ Live Demo: Watch on YouTube

Attendance System Dashboard Attendance System Dashboard Attendance System Dashboard Attendance System Dashboard Attendance System Dashboard Attendance System Dashboard Attendance System Dashboard

✨ Features

🎯 Core Functionality

  • Student & Teacher Attendance Tracking - Real-time attendance monitoring
  • Absence Justification System - Upload and manage PDF justification documents
  • Admin Profile Management - Complete user profile control
  • Dynamic Dashboard - Interactive statistics and analytics
  • Excel Bulk Upload - Import students and teachers via Excel files
  • Advanced Search & Filtering - Smart filtering with pagination
  • Responsive Design - Mobile-friendly interface

πŸ“Š Dashboard Analytics

  • Real-time attendance statistics
  • Monthly/weekly attendance trends
  • Student and teacher performance metrics
  • Absence rate analysis

πŸ“± User Experience

  • Clean, modern Bootstrap 5 interface
  • Mobile-responsive design
  • Intuitive navigation and user flows
  • Toast notifications for user feedback

πŸš€ Quick Start

Prerequisites

  • PHP 8.0 or higher
  • MySQL 5.7 or higher
  • Apache/Nginx web server
  • Composer (optional, for dependency management)

Installation

  1. Clone the repository

    git clone https://github.com/Sa3d-Ka/Attendance-Management-System-School.git
    cd Attendance-Management-System-School
  2. Database Setup

    • Create a new MySQL database (e.g., attendancedb)
    • Import the SQL schema:
      mysql -u your_username -p attendancedb < database/attendance_system.sql
  3. Environment Configuration

    • Copy the environment template:
      cp .env.example .env
    • Update .env with your database credentials:
      DB_HOST=localhost
      DB_NAME=attendancedb
      DB_USER=your_username
      DB_PASS=your_password
  4. File Permissions

    chmod 755 uploads/
    chmod 755 uploads/justifications/
    chmod 755 uploads/students/
    chmod 755 uploads/teachers/
  5. Launch the Application

    • For XAMPP: Place in htdocs folder
    • Access via: http://localhost/Attendance-Management-System-School/
    • Default login: Check database/attendance_system.sql for default credentials
  6. Admin Login Credentials

Use the following credentials to log in as an admin:

  • Email: admin1@cmc.ma
  • Password: admin123

πŸ“ Project Structure

Attendance-Management-System-School/
β”œβ”€β”€ πŸ“„ index.php                 # Main entry point
β”œβ”€β”€ πŸ” login.php                 # Authentication page
β”œβ”€β”€ πŸšͺ logout.php                # Session termination
β”œβ”€β”€ βš™οΈ .env                      # Environment configuration
β”œβ”€β”€ πŸ“‹ README.md                 # Project documentation
β”‚
β”œβ”€β”€ πŸ”Œ api/                      # REST API endpoints
β”‚   β”œβ”€β”€ πŸ“Š dashboard/            # Dashboard data endpoints
β”‚   β”œβ”€β”€ πŸ‘₯ attendance/           # Attendance management APIs
β”‚   β”œβ”€β”€ πŸŽ“ student/              # Student management APIs
β”‚   β”œβ”€β”€ πŸ‘¨β€πŸ« teacher/              # Teacher management APIs
β”‚   └── πŸ“ records/              # Record management APIs
β”‚
β”œβ”€β”€ 🎨 assets/                   # Static resources
β”‚   β”œβ”€β”€ 🎭 css/                  # Stylesheets
β”‚   β”œβ”€β”€ πŸ–ΌοΈ images/               # Images and icons
β”‚   └── ⚑ js/                   # JavaScript files
β”‚       └── πŸ› οΈ utils/            # Utility scripts
β”‚
β”œβ”€β”€ πŸ—οΈ classes/                  # PHP OOP Classes
β”‚   β”œβ”€β”€ Students.php             # Student management class
β”‚   β”œβ”€β”€ Teachers.php             # Teacher management class
β”‚   β”œβ”€β”€ StudentAttendance.php    # Student attendance logic
β”‚   β”œβ”€β”€ TeacherAttendance.php    # Teacher attendance logic
β”‚   └── Profile.php              # Profile management class
β”‚
β”œβ”€β”€ βš™οΈ config/                   # Configuration files
β”‚   β”œβ”€β”€ config.php               # Application config
β”‚   └── database.php             # Database connection
β”‚
β”œβ”€β”€ πŸ“¦ includes/                 # Reusable components
β”‚   β”œβ”€β”€ header.php               # Common header
β”‚   β”œβ”€β”€ footer.php               # Common footer
β”‚   β”œβ”€β”€ toast.php                # Notification component
β”‚   β”œβ”€β”€ πŸŽ“ student/              # Student-specific includes
β”‚   └── πŸ‘¨β€πŸ« teacher/              # Teacher-specific includes
β”‚
β”œβ”€β”€ πŸ“„ pages/                    # Main application pages
β”‚   β”œβ”€β”€ dashboard.php            # Main dashboard
β”‚   β”œβ”€β”€ attendance.php           # Attendance tracking
β”‚   β”œβ”€β”€ students.php             # Student management
β”‚   β”œβ”€β”€ teachers.php             # Teacher management
β”‚   β”œβ”€β”€ records.php              # Attendance records
β”‚   └── admin-profile.php        # Admin profile page
β”‚
└── πŸ“ uploads/                  # File upload directory
    β”œβ”€β”€ justifications/          # Absence justification PDFs
    β”œβ”€β”€ students/               # Student-related uploads
    └── teachers/               # Teacher-related uploads

πŸ› οΈ Technology Stack

Backend

  • PHP 8.0+ - Server-side logic with OOP principles
  • MySQL - Relational database management
  • PDO - Secure database operations
  • Apache/Nginx - Web server

Frontend

  • HTML5 & CSS3 - Modern markup and styling
  • Bootstrap 5.3 - Responsive UI framework
  • JavaScript (Vanilla) - Client-side interactivity
  • SheetJS - Excel file processing

Tools & Libraries

  • Font Awesome - Icon library
  • Chart.js - Data visualization
  • DataTables - Advanced table functionality

πŸ”§ Configuration

Database Configuration

Edit config/database.php to match your database settings:

<?php
class Database {
    private $host;
    private $db_name;
    private $username;
    private $password;
    
    public function __construct() {
        $this->host = $_ENV['DB_HOST'] ?? 'localhost';
        $this->db_name = $_ENV['DB_NAME'] ?? 'attendancedb';
        $this->username = $_ENV['DB_USER'] ?? 'root';
        $this->password = $_ENV['DB_PASS'] ?? '';
    }
    
    // ... connection logic
}

Environment Variables

Configure your .env file:

# Database Configuration
DB_HOST=localhost
DB_NAME=attendancedb
DB_USER=root
DB_PASS=

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit your changes
    git commit -m 'Add some amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Saad Kanani πŸ‡²πŸ‡¦


⭐ Star this repository if you found it helpful!

Made with ❀️ in Morocco πŸ‡²πŸ‡¦

Releases

No releases published

Packages

No packages published