




Desktop Payroll Management System
Cross-platform payroll application — Electron desktop shell wrapping a FastAPI backend with SQLAlchemy persistence and rich reporting.
The pms-project is a desktop payroll management system that marries a FastAPI back end with an Electron front end. The back end exposes routes for dashboards, employee management, salary grades, allowances, deductions, payroll, incentives, catch bonuses, reports, and thirteenth-month pay, all served through a FastAPI application and static files. The Electron shell launches this API as a subprocess, waits for it to become available at http://127.0.0.1:8000, and then loads the interface in a browser window. SQLAlchemy models capture domain entities such as salary grades, employees, allowances, and deductions, enabling rich payroll computations and historical tracking.
Application Startup: A simple runner starts the FastAPI app using Uvicorn, ensuring the project root is on the Python path before importing the application instance.
Routing & Static Assets: Core route modules cover operational concerns like employee records, payroll calculations, and incentives, while static files (CSS, images) are mounted for UI rendering.
Data Models: SQLAlchemy models define tables for salary grades, employees, and their related histories, supporting allowances, deductions, and pay-step adjustments.
Electron Shell: The Electron process spawns the packaged back end (PMS_API.exe), waits until it responds, and then presents the FastAPI UI inside a BrowserWindow. Single-instance enforcement and clean shutdown handling are built in.
Configuration & Scripts: package.json configures Electron Forge commands (start, package, make) and declares dependencies such as electron, @tailwindcss/cli, and axios.
The Python environment includes FastAPI, SQLAlchemy, Uvicorn, and supporting libraries for templating, Excel/Word generation, and PDF reporting, among others, as listed in requirements.txt.