This project is an Inventory Management System developed using the Laravel framework (version 8). It provides a web-based interface to manage and track various assets and inventory items within an organization. The system is designed to help keep a detailed record of IT equipment, consumables, agreements, and other related resources.
Built in 2019, this application demonstrates a comprehensive approach to inventory control, including features for authentication, data management, and activity tracking.
- User Management: Secure user registration and login functionality.
- Asset Tracking: Manage and track various types of assets including:
- Desktops
- Laptops
- Servers
- Storage Devices
- General Devices (Printers, Network equipment, etc.)
- Consumables Management: Keep track of consumable items.
- Agreement Management: Store and manage contracts and agreements related to assets or services.
- Inventory Categorization:
- Device Categories (Devcats)
- Manufacturers
- Locations
- Financial Tracking: Record payments associated with assets or agreements.
- File Attachments: Ability to attach files (e.g., invoices, warranty documents) to relevant records.
- Task Management: Assign and track tasks related to inventory management.
- Official Records & Developer Info: Maintain records of officials and developers associated with assets.
- Data Export: Export data to Excel format (inferred from
maatwebsite/exceldependency). - Activity Logging: Track significant actions performed by users within the system (inferred from
spatie/laravel-activitylogdependency). - Responsive UI: User interface built with Bootstrap, ensuring compatibility across devices.
- Data Presentation: Utilizes Datatables.js for efficient display and filtering of tabular data.
- Backend:
- PHP (Version ^7.3 || ^8.0)
- Laravel Framework (Version ^8.12)
- Key PHP Packages:
laravel/ui: For authentication scaffolding.maatwebsite/excel: For Excel export functionality.spatie/laravel-activitylog: For recording user activity.fideloper/proxy: For handling proxy server configurations.fruitcake/laravel-cors: For Cross-Origin Resource Sharing (CORS) headers.guzzlehttp/guzzle: For making HTTP requests.
- Frontend:
- Bootstrap
- JavaScript
- Datatables.js
- Database:
- Compatible with MySQL, PostgreSQL, SQLite, SQL Server (as per Laravel's default capabilities). The specific database used would be configured in the
.envfile.
- Compatible with MySQL, PostgreSQL, SQLite, SQL Server (as per Laravel's default capabilities). The specific database used would be configured in the
- Development & Testing:
- Composer: For PHP dependency management.
- NPM: For frontend dependency management.
- PHPUnit: For unit and feature testing.
-
Clone the repository:
git clone https://github.com/your-username/your-repository-name.git cd your-repository-name(Replace
https://github.com/your-username/your-repository-name.gitandyour-repository-namewith the actual URL and project directory name if different) -
Install PHP Dependencies:
composer install
-
Create Environment File: Copy the example environment file and then generate the application key.
cp .env.example .env php artisan key:generate
-
Configure Environment: Open the
.envfile in a text editor and update the following settings:DB_CONNECTION,DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAME,DB_PASSWORD: Configure your database connection details.APP_URL: Set this to the URL you will use to access the application (e.g.,http://localhost:8000).- Other settings like mail driver, queue connection, etc., as needed.
-
Run Database Migrations and Seeders: This will create the necessary database tables and populate them with initial data (if seeders are configured).
php artisan migrate --seed
-
Install Frontend Dependencies:
npm install
-
Build Frontend Assets:
npm run dev
(For development. For production, use
npm run prod) -
Start the Development Server:
php artisan serve
The application should now be accessible at the URL specified by
php artisan serve(usuallyhttp://127.0.0.1:8000orhttp://localhost:8000).
This project uses PHPUnit for automated testing. To run the test suite, execute the following command from the project's root directory:
php artisan testMake sure you have set up your testing environment correctly, which might include a separate testing database configured in phpunit.xml or your .env.testing file if applicable.
This Inventory Management System is open-sourced software licensed under the MIT License.