Skip to content

Latest commit

Β 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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 πŸ‡²πŸ‡¦

About

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

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages