Skip to content

KevinSiek/bmj-app-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

239 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BMJ Business Management System - Backend API

Production-Ready Laravel 11 Business Management API

A comprehensive business management API built with Laravel 11, providing real-time analytics, multi-module workflows, and role-based access control for the BMJ Vue.js frontend.

πŸŽ† System Status

βœ… PRODUCTION READY - Successfully serving real business data with full frontend integration

πŸ“Š Live Analytics Serving

  • Revenue Pipeline: Rp 684.361.522 potential value
  • Business Metrics: 94 quotations, 82 purchase orders, 4 back orders
  • Multi-Branch Data: Jakarta and Semarang operations
  • Real-time Dashboard: Executive KPI monitoring

πŸŽ† API Features

πŸ” Authentication & Authorization

  • JWT Authentication: Secure token-based authentication
  • Role-Based Access: Director, Marketing, Finance, Inventory, Service roles
  • Branch Security: Location-based data access control
  • Session Management: Persistent authentication with frontend

πŸ“Š Analytics & Dashboard

  • Revenue Tracking: Real-time revenue and pipeline metrics
  • Conversion Analytics: Quote-to-PO conversion rates
  • Branch Analytics: Multi-location business intelligence
  • KPI Monitoring: Performance metrics and trends
  • Inventory Alerts: Low stock notifications

🏒 Business Module APIs

Sales & Marketing APIs

  • Quotation Management: CRUD operations with customer details
  • Purchase Order Workflows: Quote-to-PO conversion tracking
  • Customer Data: Complete customer information management

Inventory Management APIs

  • Spareparts Tracking: Multi-location inventory management
  • Stock Alerts: Automated low stock notifications
  • Purchase Management: Procurement workflow APIs
  • Back Order System: Supply chain management

Financial Management APIs

  • Invoice System: Standard and proforma invoice generation
  • Payment Tracking: DP payments, full payments, receivables
  • Revenue Analytics: Branch-wise financial analysis

Service Operations APIs

  • Work Order Management: Service request tracking
  • Delivery Orders: Shipment and logistics management

Administration APIs

  • Employee Management: User roles and branch assignments
  • Data Import: Excel file processing for bulk operations
  • System Settings: Configuration management (currency, VAT, discounts)

πŸ“ File Processing

  • Excel Import: .XLS file processing for price lists
  • Data Validation: Structured import with error handling
  • Seller Codes: MHI (1), CT (2), Aseng (3)
  • Branch Codes: SMG (Semarang), JKT (Jakarta)

πŸš€ Quick Start

Prerequisites

  • PHP 8.2+
  • Composer
  • MySQL/PostgreSQL
  • Laravel 11 compatible environment

Installation

# Clone the repository
git clone https://github.com/KevinSiek/bmj-app-backend.git
cd bmj-app-backend

# Install dependencies
composer install

# Environment setup
cp .env.example .env
# Configure database credentials in .env

# Generate application key
php artisan key:generate

# Run migrations and seeders
php artisan migrate --seed

# Start development server
php artisan serve

The API will be available at http://localhost:8000

πŸ”— API Endpoints

Authentication

POST /api/login          # User authentication
POST /api/logout         # User logout
GET  /api/user           # Get authenticated user

Dashboard Analytics

GET  /api/dashboard               # Executive dashboard data
GET  /api/dashboard/revenue       # Revenue analytics
GET  /api/dashboard/operations    # Operations metrics
GET  /api/dashboard/inventory     # Inventory alerts

Business Modules

# Quotations
GET    /api/quotations           # List quotations
POST   /api/quotations           # Create quotation
PUT    /api/quotations/{id}      # Update quotation
DELETE /api/quotations/{id}      # Delete quotation

# Purchase Orders
GET    /api/purchase-orders      # List purchase orders
POST   /api/purchase-orders      # Create purchase order
PUT    /api/purchase-orders/{id} # Update purchase order

# Spareparts
GET    /api/spareparts           # List spareparts
POST   /api/spareparts           # Create sparepart
PUT    /api/spareparts/{id}      # Update sparepart

# Invoices
GET    /api/invoices             # List invoices
POST   /api/invoices             # Create invoice

# Employees
GET    /api/employees            # List employees
POST   /api/employees            # Create employee
PUT    /api/employees/{id}       # Update employee

# File Upload
POST   /api/upload/excel         # Upload Excel files

🎯 Database Schema

Core Tables

  • users - User authentication and roles
  • quotations - Sales quotations
  • purchase_orders - Purchase order management
  • invoices - Invoice management
  • spareparts - Inventory management
  • employees - Staff management
  • branches - Multi-location support

Key Relationships

  • Users belong to branches and have roles
  • Quotations can be converted to purchase orders
  • Purchase orders generate invoices
  • Spareparts tracked across multiple branches

🌍 Multi-Branch Architecture

  • Jakarta Branch: Independent operations and data
  • Semarang Branch: Separate business unit
  • Cross-Branch: Director role aggregated access
  • Data Isolation: Branch-based data security

🏦 Role-Based Permissions

Role Quotations Purchase Inventory Finance Service Admin
Director CRUD CRUD CRUD CRUD CRUD CRUD
Marketing CRUD Read - - - -
Finance Read Read - CRUD - -
Inventory - CRUD CRUD - - -
Service - Read - - CRUD -

πŸ”§ Configuration

Environment Variables

# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bmj_business
DB_USERNAME=your_username
DB_PASSWORD=your_password

# JWT Authentication
JWT_SECRET=your_jwt_secret

# File Upload
FILESYSTEM_DISK=local
MAX_UPLOAD_SIZE=10240

# CORS for frontend
SANCTUM_STATEFUL_DOMAINS=localhost:5173

CORS Configuration

Ensure CORS is configured to allow requests from the Vue.js frontend:

// config/cors.php
'allowed_origins' => ['http://localhost:5173'],

πŸ§ͺ Testing

# Run unit tests
php artisan test

# Run specific test suite
php artisan test --testsuite=Feature

# Generate test coverage
php artisan test --coverage

πŸ› οΈ Technology Stack

  • Laravel 11 - PHP framework
  • PHP 8.2 - Programming language
  • MySQL - Database management
  • JWT - Authentication tokens
  • Eloquent ORM - Database relationships
  • Laravel Sanctum - API authentication
  • Excel Processing - File import/export

πŸ“Š Performance Metrics

Current system performance (confirmed via frontend integration):

  • Response Time: < 200ms for dashboard analytics
  • Data Processing: Real-time business metrics
  • Concurrent Users: Multi-user role support
  • File Processing: Excel import with validation

πŸ† Production Status

βœ… Backend Integration Confirmed

  • Real-time data serving to Vue.js frontend
  • Multi-branch operations active
  • Role-based authentication working
  • All business modules functional
  • Executive dashboard with live KPIs

πŸ‘₯ Demo Data

The system includes demo data:

  • Director account: director.jkt@bmj.com / password
  • Sample business data across all modules
  • Multi-branch inventory and operations
  • Financial transactions and analytics

πŸ”— Frontend Integration

πŸ“Š Deployment

Production Deployment

# Optimize for production
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Run migrations
php artisan migrate --force

# Set proper permissions
chmod -R 755 storage bootstrap/cache

πŸ“„ API Documentation

For detailed API documentation with request/response examples:

  • Postman Collection: Available in /docs directory
  • OpenAPI Spec: Generated API documentation
  • Frontend Integration: See bmj-app-frontend repository

πŸ”— Related Links

πŸ“„ License

Private - BMJ Business Management System


Powered by Laravel 11 πŸš€ Serving Vue.js 3 Frontend

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages