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
- 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 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)
- Framework: Laravel 12.0
- PHP: 8.2+
- Database: MySQL/PostgreSQL
- Frontend:
- Tailwind CSS
- Alpine.js (via Laravel Breeze)
- Packages:
barryvdh/laravel-dompdf- Generate PDFmaatwebsite/excel- Export to Excelsimplesoftwareio/simple-qrcode- Generate QR Codelaravel/breeze- Authentication
- PHP >= 8.2
- Composer
- MySQL/PostgreSQL
- Node.js & NPM
-
Clone Repository
git clone https://github.com/Amee30/InvenTrack-Internship-Project.git cd InvenTrack-Internship-Project -
Install Dependencies
composer install npm install
-
Environment Setup
cp .env.example .env php artisan key:generate
-
Database Configuration
Edit file
.envand set your database credentials:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=inventrack DB_USERNAME=root DB_PASSWORD=
-
Run Migration & Seeder
php artisan migrate --seed
-
Storage Link
php artisan storage:link
-
Build Assets
npm run dev # or for production npm run build -
Run Application
php artisan serve
Your app is running at
http://localhost:8000 -
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
- For local development, run:
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
users- User Data (admin & user)barangs- Item Data (with manufacturer, model, serial_number, asset_tag, is_hidden)categories- Category Managementborrowings- Borrowing Data (with reject_reason)barang_movements- Item Movement History (in/out tracking)notifications- Real-time System Notifications
- Log in to the system
- Browse available items on the dashboard (hidden items won't be shown)
- Click "Borrow Now" to submit a borrowing request
- Wait for admin approval
- Check borrowing status and receive notifications in real-time
- If status is Waiting Pickup, go to the item pickup location
- Request return when finished using the item
- Download borrowing receipt in PDF format
- Log in as admin
- 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
- Manage categories from dedicated settings page
- Approve/reject borrowing requests with custom rejection reasons
- 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
- Monitor all item movements with detailed tracking
- Manage user accounts and roles
- Export comprehensive reports to Excel or PDF
- Print QR codes and borrowing receipts
- Receive notifications for all borrowing activities
Displays a list of available items for borrowing with stock and status information to manage borrowing requests with status tracking.

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

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

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
Tracking item movements with detailed information on borrowing and returning.

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

and many more...
- 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
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)
This project is open-source software licensed under the MIT license.
Developed with β€οΈ by Darma
- Email: darmaputra2017@gmail.com
- GitHub: @Amee30
- Project Link: InvenTrack
- Laravel - The PHP Framework
- Tailwind CSS - Utility-first CSS framework
- Alpine.js - Lightweight JavaScript framework
- Simple QR Code - QR Code generator
- DomPDF - PDF generator
- Laravel Excel - Excel export/import
Note: Some variables and parts of the code documentation are written in Indonesian. Sorry about that.
Made with β€οΈ using Laravel
