Skip to content

A modern Laboratory Information Management System (LIMS) built with Laravel 12, Tailwind CSS, and Blade — featuring patients, tests, cases, results, invoices, inventory, and role-based access control.

Notifications You must be signed in to change notification settings

AghaEssa/Laboratory-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LIMS — Laboratory Information Management System

A modern, production-ready Laboratory Information Management System (LIMS) built with Laravel 12 (PHP 8.2), Tailwind CSS, and Blade — featuring a full workflow from Patients → Tests → Cases (Orders) → Results → Invoices → Inventory.
It includes a sleek dark UI, analytics dashboard, and role-based access powered by Spatie Permission.


✨ Key Features

  • 🧍 Patients & Tests: CRUD, search, pagination, validation
  • 📋 Cases (Orders): Multi-test workflow, auto total calculation, case status tracking
  • 🧪 Results Workflow: Enter → Validate → Approve (with timestamps and audit trail)
  • 📄 Invoices: Printable PDF with patient/test details
  • 📊 Dashboard & KPIs: 30-day charts, today’s revenue, and top tests
  • 📦 Inventory & Batches: Stock tracking (qty in/out, expiry, cost per batch)
  • 🔐 RBAC: Role-based access — Admin & User
  • 🌙 Dark Theme: Mobile-friendly interface with custom Tailwind utilities
  • ⚙️ Reports Module: Search by invoice #, patient name, or phone (via ReportController)
  • 💾 Operations: Automated backups, migrations, and log rotation

🧱 Tech Stack

Layer Technology
Backend Laravel 12 (PHP 8.2)
Frontend Blade + Tailwind CSS
Database MySQL 8.x
Auth / RBAC Laravel Breeze + Spatie Permission
Charts Chart.js
PDF Engine DomPDF / Snappy
Build Tools Vite + NPM

🚀 Quick Start

# 1. Clone & install
git clone <your-repo-url> lims && cd lims
composer install
npm install

# 2. Environment setup
cp .env.example .env
php artisan key:generate

# 3. Database setup
# update DB_ credentials in .env
php artisan migrate --seed

# 4. Assets build
npm run dev  # or npm run build

# 5. Run server
php artisan serve
# → http://127.0.0.1:8000

🔐 Roles & Access

Role Description Permissions
Admin Full access to all modules Manage Inventory, Users, Reports
User Day-to-day lab operations Patients, Cases, Results, Invoices

📊 Dashboard Overview

  • Total Patients / Cases / Revenue (Today & Monthly)
  • 30-Day Orders Chart (Chart.js)
  • Top 5 Tests (by frequency)
  • Pending vs Completed Cases

📦 Inventory & Batches

Field Description
qty_in / qty_out Stock movements
expiry_date Batch expiry tracking
unit_cost Cost per batch
qty_total Computed: SUM(qty_in - qty_out)

➕ Add stock per item through Add Stock in the Inventory module.


🧰 Useful Commands

php artisan optimize:clear     # Clear caches
php artisan route:list         # View all routes
npm run dev                    # Live compile assets
npm run build                  # Production build

📂 Documentation Index

File Description
Project-Overview.md Business scope & goals
Project-Structure.md Folder layout
Routes.md All endpoints
Operations-Runbook.md Backups, logs, migrations
Security.md Hardening checklist
Contributing.md PR / branching guide
CHANGELOG.md Release notes
LIMS_User_Admin_Manual_Agha_Essa_Khan.docx Full installation & user manual

🧑‍💻 Contributors

Agha Essa KhanProject Lead / Developer
💡 Contributions welcome via Pull Requests


🏷️ Version

v1.1 — October 2025
Updated with new Case workflow, enhanced report search, and refined dark-UI components.


📄 Manuals & Docs

© 2025 Agha Essa KhanAll rights reserved.

About

A modern Laboratory Information Management System (LIMS) built with Laravel 12, Tailwind CSS, and Blade — featuring patients, tests, cases, results, invoices, inventory, and role-based access control.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages