Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 StaffPortal - Modern HRM System

A lightweight yet powerful Human Resource Management (HRM) System built to streamline employee management, attendance tracking, and payroll processing.

Built with Laravel, Inertia.js, and Vue 3, this project demonstrates a modern, single-page application (SPA) architecture for internal enterprise tools.

Dashboard

✨ Key Features

📍 Geo-Fenced Attendance System

  • Smart Clock-In: Employees can only clock in when they are physically inside designated office zones.
  • Polygon Geofencing: Administrators can draw complex office boundaries on a map to define allowed work areas.
  • Real-time Validation: Uses browser geolocation APIs compared against stored polygon coordinates.

Office Locations Add Location

📅 comprehensive Attendance Tracking

  • Interactive Calendar: A full visual history of an employee's attendance.
  • Status Capabilities: Tracks Present, Late, Half-Day, Absent, and Leave statuses.
  • Detailed Logs: View exact check-in and check-out times for every active day.

Employee Profile & Calendar Attendance Report

🌴 Leave Management

  • Streamlined Requests: Employees can easily apply for sick, vacation, or casual leaves.
  • Approval Workflow: Admins can approve or reject leave requests with reason tracking.
  • Leave Balance: Dashboard overview of pending and approved leaves.

Leave Management

💰 Payroll & Payslips

  • Auto-Generation: Generate monthly payslips for all eligible employees in one click.
  • Calculations: Automatically computes Basic Salary, Allowances, and Net Pay.
  • Professional PDF Export: Download sleek, A5 Landscape PDFs optimized for printing and digital receipts.

Payslip List Payslip PDF

🎒 Asset Management

  • Device Tracking: Assign assets (Laptops, Licenses, Keycards) to specific employees.
  • History: Track who has what item and its current status.

🛠 Technology Stack

  • Backend: Laravel 12+ (PHP 8.2)
  • Frontend: Vue.js 3 (Composition API)
  • Routing: Inertia.js (Server-driven SPA)
  • Styling: TailwindCSS
  • Database: MySQL / SQLite
  • Maps: Leaflet.js (OpenStreetMap)
  • PDF: DomPDF

🚀 Installation

  1. Clone the repository

    git clone https://github.com/mabdusshakur/StaffPortal.git
    cd staff-portal
  2. Install Dependencies

    composer install
    npm install
  3. Environment Setup

    cp .env.example .env
    php artisan key:generate
  4. Database Setup Configure your database credentials in the .env file, then run:

    php artisan migrate:fresh --seed

    This generates realistic dummy data including users, attendance history, coordinates, and payslips.

  5. Run the Application

    # Terminal 1
    php artisan serve
    
    # Terminal 2
    npm run dev
    
    #or 
    composer run dev
  6. Login Credentials

    Role Email Password
    Admin admin@staffportal.com password
    Employee employee@staffportal.com password
    HR hr@staffportal.com password

Note: This project was built as a rapid prototype to demonstrate full-stack capabilities with Geolocated features.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages