Skip to content

Repository files navigation

SIJAR (Sistem Inventaris Peminjaman Barang Jurusan)

SIJAR is a professional-grade inventory and equipment lending management application built for educational environments. It streamlines the lifecycle of departmental assets, ensuring real-time tracking, student accountability, and administrative transparency through a mobile-first approach.


Core Pillars

  • Security & Integrity: Multi-layer protection including SSL Pinning and data encryption to ensure secure communication and storage.
  • Dynamic Synchronization: Real-time data consistency across screens using an internal event bus architecture.
  • Advanced Media Handling: Robust image processing engine that automatically fixes orientation, resizes, and compresses uploads (Camera/Gallery) for server compatibility.
  • User-Centric Design: Fluid Jetpack Compose UI with tactile haptic feedback and localized multilingual support.

Technical Features

Lending & Inventory

  • Smart Catalog: Real-time availability tracking with department-based filtering and autocomplete search.
  • Validated Lending Form:
    • Intelligent time-slot selection (Class Periods).
    • Multi-day planning with interactive Date Picker.
    • Automatic handling of expired pending requests (Auto-failed status).
  • History Tracking: Categorized records of all historical activities (Approved, Rejected, Cancelled) with monthly grouping.

Security Implementation

  • SSL Pinning: Certificate pinning via OkHttp to prevent Man-in-the-Middle (MITM) attacks.
  • Encrypted Storage: sensitive user data and tokens are stored using AES-256 GCM encryption via Jetpack Security.
  • Obfuscation Ready: Optimized R8/ProGuard configuration for stable and secure release builds.

System Automation

  • Background Reminders: Automated return deadlines notifications via WorkManager (60/30 minutes intervals).
  • State Persistence: Automatic restoration of UI states during configuration changes (Orientation/Process death).
  • Multilingual Support: Dynamic language switching (English/Indonesian) with persistent per-user preferences.

Tech Stack

Mobile Architecture

  • Framework: Jetpack Compose (Declarative UI).
  • Pattern: MVVM (Model-View-ViewModel) with Event Bus synchronization.
  • DI: Koin for scoped dependency management.
  • Networking: Retrofit 2 & OkHttp 5 with SSL Pinner.
  • Serialization: GSON with custom deserializers for complex API responses.
  • Media: Coil for asynchronous image loading with support for encrypted storage paths.

Backend Infrastructure

  • Framework: Laravel 11.
  • Environment: Dockerized via Laravel Sail.
  • Storage: Secure file system with symbolic linking for asset protection.

R&D and Quality Assurance

  • Debugging Tools:
    • Chucker: In-app HTTP monitoring for real-time API inspection.
    • Flipper: Comprehensive layout and database debugging.
  • Performance: Optimized image parser ensures minimal memory footprint and fast uploads even with high-resolution camera input.
  • Release Stability: Fully tested for 16 KB page size compatibility on Android 15.

Setup Guide

  1. Environment: Ensure Laravel Sail is active and storage links are generated (php artisan storage:link).
  2. Connectivity:
    • Update ApiClient.BASE_URL in the Android source to your server endpoint.
    • For local development, use 10.0.2.2 (Emulator) or your LAN IP.
  3. Build: Use the debug variant for inspection tools or release for production performance testing.