Skip to content

Amee30/InvenTrack-Internship-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¦ InvenTrack - Smart Inventory & Borrowing Management System

Laravel Logo

Laravel Version PHP Version License

πŸ“‹ About InvenTrack

InvenTrack is a web-based inventory and item borrowing management system designed to efficiently manage item loans and returns. Equipped with QR Code features for item tracking, PDF reports, and data export to Excel.

πŸ’‘ This project was created for Internship purposes

✨ Key Features

πŸ‘€ User Features

  • User Dashboard: View available items for borrowing
  • Item Borrowing: Submit item borrowing requests
  • Borrowing History: View borrowing history with various statuses
  • PDF Receipt: Download borrowing proof in PDF format
  • Real-time Status: Track borrowing status (Pending, Approved, Borrowed, Returned, Rejected)

πŸ‘¨β€πŸ’Ό Admin Features

  • Admin Dashboard: System statistics overview (Total Items, Users, Borrowings, etc.)
  • Item Management:
    • CRUD items with photos, manufacturer, model, serial number, and asset tag
    • Smart QR Code generation (Priority: Asset Tag > Serial Number > Auto Generate)
    • Print QR Code
    • Stock management with movement tracking
    • Hide/Show items from user dashboard
    • Auto-fill form from existing items
    • Unique validation for serial numbers and asset tags
  • Category Management:
    • Create, edit, and delete item categories
    • Centralized category management page
  • User Management: CRUD users with role management (Admin/User)
  • Borrowing Management:
    • Approve/Reject borrowing requests with reason
    • QR Scanner for item pickup and return validation
    • QR Scanner for item identification
    • Admin can directly return items without waiting for user request
    • Prevent duplicate borrowing requests
    • Support multiple users borrowing same item (for items with stock > 1)
    • View borrowing details with complete history
  • Notification System:
    • Real-time notifications for admins and users
    • Mark all as read functionality
    • Auto-notification for borrowing status changes
  • Movement History: Track all item movements (in/out) with detailed information
  • Export Data: Export data to Excel or PDF (Items, Users, Borrowings, Movements)

πŸ› οΈ Tech Stack

  • Framework: Laravel 12.0
  • PHP: 8.2+
  • Database: MySQL/PostgreSQL
  • Frontend:
    • Tailwind CSS
    • Alpine.js (via Laravel Breeze)
  • Packages:
    • barryvdh/laravel-dompdf - Generate PDF
    • maatwebsite/excel - Export to Excel
    • simplesoftwareio/simple-qrcode - Generate QR Code
    • laravel/breeze - Authentication

πŸ“¦ Installation

Prerequisites

  • PHP >= 8.2
  • Composer
  • MySQL/PostgreSQL
  • Node.js & NPM

Installation Steps

  1. Clone Repository

    git clone https://github.com/Amee30/InvenTrack-Internship-Project.git
    cd InvenTrack-Internship-Project
  2. Install Dependencies

    composer install
    npm install
  3. Environment Setup

    cp .env.example .env
    php artisan key:generate
  4. Database Configuration

    Edit file .env and set your database credentials:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=inventrack
    DB_USERNAME=root
    DB_PASSWORD=
  5. Run Migration & Seeder

    php artisan migrate --seed
  6. Storage Link

    php artisan storage:link
  7. Build Assets

    npm run dev
    # or for production
    npm run build
  8. Run Application

    php artisan serve

    Your app is running at http://localhost:8000

  9. Set Up Scheduler (Optional)

    To enable automatic cancellation of unpicked borrowings after 1 day, set up the Laravel scheduler:

    • For local development, run:
      php artisan schedule:work
    • For production, add the following cron entry:
      * * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1

πŸ‘₯ Default Credentials

After seeding the database, you can use the following default credentials to log in:

Admin:

  • Email: admin@example.com
  • Password: password

User:

  • Email: user@example.com
  • Password: password

πŸ“ Database Structure

Tables

  • users - User Data (admin & user)
  • barangs - Item Data (with manufacturer, model, serial_number, asset_tag, is_hidden)
  • categories - Category Management
  • borrowings - Borrowing Data (with reject_reason)
  • barang_movements - Item Movement History (in/out tracking)
  • notifications - Real-time System Notifications

🎯 How To Use

For Users:

  1. Log in to the system
  2. Browse available items on the dashboard (hidden items won't be shown)
  3. Click "Borrow Now" to submit a borrowing request
  4. Wait for admin approval
  5. Check borrowing status and receive notifications in real-time
  6. If status is Waiting Pickup, go to the item pickup location
  7. Request return when finished using the item
  8. Download borrowing receipt in PDF format

For Admin:

  1. Log in as admin
  2. Manage items with advanced features:
    • Add items with manufacturer, model, serial number, and asset tag
    • Auto-fill form from existing items
    • Generate unique QR codes (auto or from asset tag/serial number)
    • Hide items from user dashboard
    • Track stock and movement history
  3. Manage categories from dedicated settings page
  4. Approve/reject borrowing requests with custom rejection reasons
  5. Use QR Scanner for three modes:
    • Pickup Mode: Validate item pickup by scanning QR code
    • Return Mode: Validate item return or admin can directly return items
    • Identify Mode: Scan QR code to quickly find and view item details
  6. Monitor all item movements with detailed tracking
  7. Manage user accounts and roles
  8. Export comprehensive reports to Excel or PDF
  9. Print QR codes and borrowing receipts
  10. Receive notifications for all borrowing activities

πŸ“Έ Screenshots

User Dashboard

Displays a list of available items for borrowing with stock and status information to manage borrowing requests with status tracking.

Admin Dashboard and Borrowing Management

Overview of system statistics with charts, quick actions, and a table of borrower lists.

Item Management

Shows a list of items with CRUD features, QR Code generation, and stock management.

QR Code Scanner with Multiple Modes

Advanced QR scanner with three modes:

  • Pickup Mode: Validate item pickup by scanning QR code
  • Return Mode: Validate item return or admin can directly return items
  • Identify Mode: Quickly find item details by scanning QR code

Item Movement History

Tracking item movements with detailed information on borrowing and returning.

Export Data

Export item, user, borrowing, and item movement data to Excel or PDF format for reporting.

and many more...

πŸ” Security Features

  • Authentication with Laravel Breeze
  • Role-based Access Control (Admin/User)
  • CSRF Protection
  • XSS Protection
  • SQL Injection Prevention
  • Password Hashing
  • Unique validation for serial numbers and asset tags
  • Borrowing duplicate prevention
  • Stock validation to prevent over-borrowing

πŸ“± Responsive Design

This application is built with a responsive design using Tailwind CSS, ensuring optimal user experience across various devices:

  • Desktop (1920px+)
  • Laptop (1024px - 1919px)
  • Tablet (768px - 1023px)
  • Mobile (< 768px)

πŸ“ License

This project is open-source software licensed under the MIT license.

πŸ‘¨β€πŸ’» Developer

Developed with ❀️ by Darma

πŸ“§ Contact

πŸ™ Acknowledgments


Note: Some variables and parts of the code documentation are written in Indonesian. Sorry about that.


Made with ❀️ using Laravel

Releases

No releases published

Packages

No packages published

Languages