Skip to content

A user-friendly web application for managing human resources operations including employee records, attendance, leave requests, payroll, and company announcements.

License

Notifications You must be signed in to change notification settings

paulaxisabel/hr-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HR Management System

A user-friendly web application for managing human resources operations including employee records, attendance, leave requests, payroll, and company announcements.

PHP Version CodeIgniter License

🎯 What Does This System Do?

This HR system helps companies manage their workforce efficiently:

  • Employee Database - Store and organize staff information
  • Department Management - Group employees by departments
  • Time Tracking - Record attendance with automatic late/overtime detection
  • Leave Management - Handle leave applications and approvals
  • Payroll Processing - Calculate salaries with Philippine statutory deductions
  • Announcements - Post and track company communications
  • Profile Updates - Manage profile change requests with approval workflow

πŸš€ Quick Start

What You Need

  • Web server (XAMPP, WAMP, or MAMP)
  • PHP 5.6 or newer
  • MySQL database

Installation Steps

1. Download and Extract

  • Extract to your web server folder:
    • XAMPP: C:/xampp/htdocs/
    • WAMP: C:/wamp64/www/
    • Linux: /var/www/html/

2. Create Database

  • Open phpMyAdmin at http://localhost/phpmyadmin
  • Create database named hr_system
  • Import database/hr_system.sql

3. Configure Edit application/config/database.php:

'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'hr_system',

Edit application/config/config.php:

$config['base_url'] = 'http://localhost/hr-management-system/';

4. Access

  • Open: http://localhost/hr-management-system/
  • Login with default credentials below

πŸ” Default Login Credentials

User Type Username Password
Admin admin admin
Employee employee employee

⚠️ Important: Change these passwords immediately after first login!

πŸ‘₯ User Roles

Admin

Full system control: manage employees, approve leave, generate payroll, post announcements, approve profile changes.

Staff

Limited access: clock in/out, apply for leave, view salary slips, read announcements, request profile changes.

πŸ“‹ Key Features

1. Employee Management

Add and organize employee information including personal details, department, salary, and profile photos.

2. Attendance System

  • Employees clock in/out (standard: 8:00 AM - 5:00 PM)
  • Automatic late detection (grace period: 10 minutes)
  • Overtime calculation (work past 6:00 PM)
  • Monthly reports and statistics

3. Leave Management

  • Employees submit leave requests with dates and reason
  • Admins approve or reject with comments
  • Track leave history and status

4. Payroll System

  • Semi-monthly payroll (1st & 2nd cutoff)
  • Attendance-based salary calculation
  • Overtime pay at 125% rate
  • Philippine deductions (SSS, PhilHealth, Pag-IBIG, Tax)
  • Automatic deductions for absences and tardiness

5. Announcements

Post company-wide memos with unread badges, read tracking, and automatic notifications.

6. Profile Management

Staff submit profile change requests that require admin approval before being applied.

πŸ”§ Troubleshooting

Database connection failed

  • Check MySQL is running
  • Verify credentials in application/config/database.php
  • Ensure database was imported

Page not found (404)

  • Check base URL in application/config/config.php
  • Verify .htaccess file exists
  • Enable Apache mod_rewrite

Can't upload images

  • Create uploads/profile-pic/ folder
  • Set permissions: chmod -R 777 uploads/

Login not working

  • Check CAPS LOCK is off
  • Verify database was imported correctly
  • Clear browser cookies

πŸ“ Folder Structure

hr-management-system/
β”œβ”€β”€ application/
β”‚   β”œβ”€β”€ controllers/    # Business logic
β”‚   β”œβ”€β”€ models/        # Database operations
β”‚   β”œβ”€β”€ views/         # UI templates
β”‚   └── config/        # Configuration
β”œβ”€β”€ assets/            # CSS, JavaScript, images
β”œβ”€β”€ uploads/           # Uploaded files
β”œβ”€β”€ database/          # SQL setup file
└── system/            # CodeIgniter core

πŸ” Security Tips

  1. Change default passwords immediately
  2. Use strong passwords (8+ characters)
  3. Enable HTTPS for production
  4. Regular database backups
  5. Set proper file permissions
  6. Update PHP and MySQL regularly

πŸ“ For Developers

Tech Stack

  • Backend: CodeIgniter 3.1.11, PHP 5.6+
  • Frontend: AdminLTE 2.4, Bootstrap 3.3.7
  • Database: MySQL/MariaDB
  • Libraries: jQuery, Chart.js, DataTables

Key Files

  • application/config/routes.php - URL routing
  • application/config/database.php - Database settings
  • application/controllers/ - Application logic
  • application/models/ - Database queries
  • application/views/ - HTML templates

Adding Features

  1. Create controller in application/controllers/
  2. Create model in application/models/
  3. Create view in application/views/
  4. Follow MVC pattern and existing structure

Future Enhancements

  • πŸ“§ Email notifications
  • πŸ“± Mobile app
  • πŸ“„ Document management
  • πŸ“Š Advanced analytics
  • 🌍 Multi-language support

🀝 Contributing

We welcome contributions! Here's how you can help:

How to Contribute

  1. Fork the Repository

    • Click the "Fork" button on GitHub
    • Clone your fork: git clone https://github.com/paulaxisabel/hr-management-system.git
  2. Create a Feature Branch

    git checkout -b feature/YourFeatureName
  3. Make Your Changes

    • Follow the existing code style
    • Test your changes thoroughly
    • Add comments for complex code
  4. Commit Your Changes

    git add .
    git commit -m "Add: Brief description of your changes"
  5. Push to Your Fork

    git push origin feature/YourFeatureName
  6. Create a Pull Request

    • Go to the original repository
    • Click "New Pull Request"
    • Describe your changes clearly

Contribution Guidelines

  • Write clean, readable code
  • Follow CodeIgniter coding standards
  • Test on both admin and employee accounts
  • Update documentation if needed
  • One feature per pull request

Report Bugs

Found a bug? Create an issue with:

  • Description of the problem
  • Steps to reproduce
  • Screenshots (if applicable)
  • Your PHP/MySQL versions

Suggest Features

Have an idea? Open an issue with the "enhancement" label and describe your feature request.

πŸ’¬ Support

πŸ“„ License

MIT License - Free to use, modify, and distribute for personal and commercial projects.

πŸŽ‰ Credits

Created by: Paula Isabel Signo (@paulaxisabel)

Special Thanks: AdminLTE, CodeIgniter Community, Bootstrap, Font Awesome


Made with ❀️ by paula

About

A user-friendly web application for managing human resources operations including employee records, attendance, leave requests, payroll, and company announcements.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published