High-Level Architecture

Main ERP System (Spring Boot + Oracle) ERP Core Layer ERP Frontend (Main App) React + TypeScript ERP Backend (Core API) Spring Boot Oracle DB (Shared) Enterprise DB Logistics Module Layer Logistics UI (React Module) Ant Design + Tailwind Logistics API (Spring Boot) REST Endpoints Logistics Tables (Oracle Schema) 23 Tables Shared ERP Services Auth Service SSO/LDAP/OAuth User Service RBAC & Profiles File Service Document Storage Audit Service Logging & Trails Email/SMS Communication Notification Alerts & Updates Workflow Approval Engine Reporting Analytics & BI Multi-Country Operations Libya • Tunisia • Iraq API Namespace /api/v1/logistics/*

Architecture Legend

ERP Core Components
Logistics Module Components
Shared ERP Services
Direct Integration
Service Dependencies
Workflow Reporting

ERP Integration Points

1. Authentication & User Management Integration

  • Single Sign-On (SSO): Logistics module inherits ERP's authentication system
  • Role-Based Access Control (RBAC): Uses ERP's existing user roles and permissions
  • User Context: Inherits user profile, department, and authorization levels
  • Session Management: Shared session handling across ERP modules

2. Database Integration

  • Shared Oracle Database: Logistics tables reside in the same database as core ERP
  • Referential Integrity: Foreign key relationships with ERP core tables
  • Transaction Management: Participates in ERP-wide distributed transactions
  • Backup & Recovery: Included in ERP's backup and disaster recovery procedures

3. API Integration

  • Unified API Gateway: All requests go through ERP's API gateway
  • Namespace Isolation: Logistics endpoints under /api/v1/logistics/
  • Shared Middleware: Authentication, logging, rate limiting, and monitoring
  • Cross-Module Communication: Inter-module communication for project data

4. User Interface Integration

  • Embedded Module: Logistics UI integrated within ERP's main interface
  • Consistent UI/UX: Follows ERP's design system and user experience patterns
  • Navigation Integration: Accessible through ERP's main navigation menu
  • Shared Components: Uses ERP's common UI components and styling

5. Business Process Integration

  • Workflow Engine: Leverages ERP's workflow engine for approvals
  • Notification System: Uses ERP's notification infrastructure
  • Audit Trail: Integrated with ERP's audit logging system
  • Reporting Integration: Logistics reports available through ERP's reporting module

6. Data Synchronization Points

  • Project Data: Real-time synchronization with ERP project management
  • User Data: Automatic updates when users/roles change in ERP
  • Financial Data: Integration with ERP accounting for invoicing and payments
  • Vendor Data: Synchronization with ERP vendor/supplier management

ERP Module Configuration

Spring Boot Application Structure

src/main/java/com/gets-company/erp/
├── logistics/                    # Logistics module package
│   ├── config/                   # Module-specific configuration
│   ├── controller/               # REST controllers
│   ├── service/                  # Business logic services
│   ├── repository/               # Data access layer
│   ├── entity/                   # JPA entities
│   ├── security/                 # Security configurations
│   └── LogisticsModuleApplication.java
├── core/                         # Shared ERP core services
│   ├── auth/                     # Authentication services
│   ├── user/                     # User management
│   ├── notification/             # Notification services
│   ├── audit/                    # Audit logging
│   ├── file/                     # File management
│   └── workflow/                 # Workflow engine
└── ERPApplication.java           # Main ERP application

Integration Configuration

# application.yml
spring:
  datasource:
    url: jdbc:oracle:thin:@//localhost:1521/ERPDB
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}
    driver-class-name: oracle.jdbc.OracleDriver
  
  jpa:
    hibernate:
      ddl-auto: validate
    show-sql: false
    properties:
      hibernate:
        dialect: org.hibernate.dialect.Oracle12cDialect
        format_sql: true
        
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: ${ERP_AUTH_ISSUER_URI}
          
erp:
  modules:
    logistics:
      enabled: true
      base-path: /api/v1/logistics
      audit-enabled: true
      notification-enabled: true
      workflow-enabled: true
      
  services:
    user-service:
      url: ${ERP_USER_SERVICE_URL}
    file-service:
      url: ${ERP_FILE_SERVICE_URL}
    notification-service:
      url: ${ERP_NOTIFICATION_SERVICE_URL}
    audit-service:
      url: ${ERP_AUDIT_SERVICE_URL}

Service Layer Architecture

1

Presentation Layer

React module integrated into ERP frontend with consistent UI/UX and navigation.

React 18 TypeScript Ant Design Tailwind CSS
2

API Layer

Spring Boot REST Controllers with ERP authentication and unified API gateway.

Spring Boot Spring Security REST API JWT
3

Business Logic Layer

Spring Services with ERP transaction management and workflow integration.

Spring Services Transaction Management Business Rules Validation
4

Data Access Layer

Spring Data JPA with shared Oracle Database and referential integrity.

Spring Data JPA Oracle Database Hibernate ACID Transactions
5

Integration Layer

ERP service integrations and external service connections with unified protocols.

Service Integration Message Queues Event Streaming API Gateway

Integration Benefits

Seamless Data Flow

Real-time data synchronization between the logistics module and core ERP ensures consistency and accuracy.

Unified Security

Leverages existing ERP security infrastructure for authentication, authorization, and audit trails.

Single User Experience

Users access logistics functionality through the familiar ERP interface without additional logins.

Consolidated Reporting

Logistics data is available in ERP reports and dashboards for comprehensive business insights.

Reduced Complexity

Eliminates need for separate systems, reducing IT overhead and integration complexity.

Cost Efficiency

Leverages existing ERP infrastructure investments while adding specialized logistics capabilities.

Deployment Considerations

Infrastructure Requirements

  • Shared Oracle Database instance with sufficient capacity
  • Application server resources for Spring Boot module
  • Load balancer configuration for high availability
  • Backup and disaster recovery procedures

Security Considerations

  • Network security and firewall configurations
  • SSL/TLS certificates for secure communications
  • Database access controls and encryption
  • Regular security audits and vulnerability assessments

Performance Optimization

  • Database indexing strategy for logistics tables
  • Caching mechanisms for frequently accessed data
  • Connection pooling and resource management
  • Monitoring and alerting systems

Data Migration

  • Migration strategy for existing equipment data
  • Data validation and cleansing procedures
  • Rollback procedures in case of issues
  • User training and change management