Skip to content

TheXyberis/Sample-Lab

Repository files navigation

SampleLab LIMS

Laboratory Information Management System for quality control and sample tracking.

Application Screenshots























Features

Sample Management

  • Sample Registration: Create and register new samples with unique codes
  • Barcode Integration: Generate barcodes and QR codes for sample tracking
  • Status Tracking: Monitor sample lifecycle (Registered → In Progress → Completed → Archived)
  • Metadata Support: Store additional sample information in JSON format
  • Client Management: Assign samples to clients and projects

Measurement Workflow

  • Method Assignment: Link samples to specific analytical methods
  • Measurement Planning: Schedule and assign measurements to laboratory staff
  • Progress Tracking: Monitor measurement status in real-time
  • Quality Control: Built-in QC checkpoints and validation

Results Management

  • Dynamic Forms: Auto-generated forms based on method schema
  • Data Validation: Type checking and range validation
  • Multi-step Approval: Draft → Submit → Review → Approve/Reject
  • Audit Trail: Complete change tracking with JSON diffs
  • Result Locking: Prevent unauthorized modifications

User Roles & Permissions

  • Admin: Full system access and user management
  • Manager: Sample and measurement planning, report generation
  • Laborant: Sample processing and result entry
  • QC/Reviewer: Result review and approval
  • Client: View reports and sample status

Reporting

  • Real-time Reports: Generate COA, certificates, analysis reports
  • Export Options: PDF, Excel, CSV formats
  • Custom Templates: Configurable report layouts
  • Audit Logs: Complete activity tracking

Technical Stack

  • Backend: Laravel 12.53.0, PHP 8.2.30
  • Frontend: Blade templates, Bootstrap 5, JavaScript
  • Database: MySQL with optimized indexes
  • Authentication: Laravel Sanctum with Spatie Permissions
  • Security: CSRF protection, input validation, role-based access

Sample Statuses

Status Description Color
REGISTERED Sample registered in system Primary
IN_PROGRESS Sample being processed Warning
COMPLETED Analysis completed Success
ARCHIVED Sample archived Secondary
DISPOSED Sample disposed Dark

Measurement Workflow

  1. Sample Registration → Generate unique sample code
  2. Method Assignment → Link to analytical method
  3. Measurement Planning → Assign to laboratory staff
  4. Sample Processing → Perform analysis
  5. Result Entry → Input measurement results
  6. Quality Review → QC approval process
  7. Report Generation → Create final report

User Roles

Admin (Administrator)

  • Full system access
  • User management
  • Method configuration
  • System settings
  • All reports and exports

Manager

  • Create and manage samples
  • Plan measurements
  • Assign staff
  • Generate reports
  • View audit logs

Laborant (Laboratory Technician)

  • Process assigned samples
  • Enter measurement results
  • Update sample status
  • View assigned work

QC/Reviewer (Quality Control)

  • Review measurement results
  • Approve or reject results
  • Lock approved results
  • Generate quality reports

Client

  • View sample status
  • Download reports
  • Track sample progress
  • View basic analytics

User Guide

Quick Start for Laboratory Staff

1. Login to System

  • Navigate to http://localhost:8000
  • Enter your credentials:
    • Laborant: lab@test.com
    • QC/Reviewer: qc@test.com
    • Manager: manager@test.com
    • Admin: admin@test.com

2. Register New Sample

  1. Click Samples in navigation menu
  2. Click Create Sample button
  3. Fill sample information:
    • Sample name and type
    • Client and project
    • Quantity and unit
    • Methods
  4. Click Submit
  5. System generates unique sample code (e.g., S-2026-0001)

3. Plan Measurements

  1. Click Create Measurements button
  2. Select created sample from list
  3. Choose analytical methods from dropdown
  4. Set planned date and priority
  5. Click Save

4. Generate Reports

  1. Go to Reports section
  2. Select completed samples
  3. Select completed projects
  4. Click Generate and download

5. Method Configuration

  1. Navigate to Methods section
  2. Create analytical methods with field definitions
  3. Set validation rules and requirements
  4. Publish methods for use

Common Workflows

Sample Lifecycle

Sample Registration → Method Assignment → Measurement Planning → 
Sample Processing → Result Entry → Quality Review → Report Generation

Result Approval Process

Draft → Submit → Review → Approve/Reject → Lock → Report

Data Model

Core Entities

  • Samples: Primary entities with unique codes
  • Measurements: Analysis tasks linked to samples
  • Results: Measurement data with validation
  • Methods: Analytical procedures with schema definitions
  • Users: System users with role-based permissions
  • Clients: Organizations that submit samples
  • Projects: Groupings of related samples

Relationships

  • Client → Projects → Samples → Measurements → Results
  • User ↔ Measurements (assignments)
  • Method ↔ Results (schema validation)

Security Features

  • Role-Based Access Control: Granular permissions system
  • Audit Trail: Complete activity logging
  • Data Validation: Input sanitization and type checking
  • Session Management: Secure authentication
  • CSRF Protection: Form security tokens

Getting Started

Prerequisites

  • PHP 8.2+
  • MySQL 8.0+
  • Composer
  • Node.js (for assets)

Installation

git clone <repository>
cd samplelab
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan db:seed

Configuration

  1. Configure database in .env
  2. Set application timezone
  3. Configure mail settings
  4. Run migrations and seeders

Development Server

php artisan serve

Access at: http://localhost:8000

API Documentation

Authentication

  • Login: POST /api/login
  • Logout: POST /api/logout
  • User: GET /api/user

Samples

  • List: GET /api/samples
  • Create: POST /api/samples
  • Update: PUT /api/samples/{id}
  • Delete: DELETE /api/samples/{id}

Measurements

  • List: GET /api/measurements
  • Create: POST /api/measurements
  • Update: PUT /api/measurements/{id}

Results

  • List: GET /api/results
  • Update: PUT /api/results/{id}
  • Submit: POST /api/results/{id}/submit

Testing

# Run all tests
php artisan test

# Run specific test
php artisan test --filter ResultWorkflowTest

# Generate coverage report
php artisan test --coverage

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages