https://github.com/bahdcoder/inventax
https://github.com/bahdcoder/inventax
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bahdcoder/inventax
- Owner: bahdcoder
- Created: 2024-11-07T00:50:39.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-07T08:31:34.000Z (over 1 year ago)
- Last Synced: 2025-05-25T14:45:58.871Z (10 months ago)
- Language: PHP
- Size: 216 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Inventory management system in laravel
This is a simple inventory management system built with Laravel and Inertia.js. It allows users to view a list of products, filter products by category, stock status and name, and create new products.
[View the live application demo here](https://inventax.up.railway.app/)
## Summary of features
This is a summary of the features supported by this application:
- [x] A user can see a list of products available in the inventory by visiting the `/` page.
- [x] A user can filter products in inventory based on category, stock status and name.
- [x] A user can create a product by visiting the home page `/` and clicking the `Add product` button.
- [x] Application is fully responsive and provides a good user experience across devices.
## Set up
The setup of this project follows the standard Laravel setup with nothing out of the ordinary after you install dependencies.
1. Install dependencies using `composer install` and `npm install`
2. Build client side bundle using `npm run build`
3. Copy the `.env.example` file to `.env` and update the database configuration. By default it ships with Sqlite for simplicity.
4. Run the migrations and seed the database using `php artisan migrate --seed`. This will generate enough (a lot of) data to easily test the features of this application.
It may be easiest to set up an sqlite database by just creating a `database/database.sqlite` file and running the migrations.
```bash
php artisan migrate:fresh
```
You may also want to run the automated tests:
```bash
php artisan dusk
```
## To improve
For future improvements, these are some of the changes I would make:
- [ ] The status radio feels heavy. This is because of the dom update strategy. At the moment it highlights the selected status after inertia updates the page. We could make it auto highlight on click.
- [ ] Improve categories combobox to handle unique cases like api failure, search abort, no results, etc.
- [ ] Refactor components to reusable hooks. Example: Paginator, Combobox.
- [ ] Fix scroll behaviour on page navigation.
- [ ] Add more feature tests for the product and category controllers to ensure they keep working as expected.