The Cash Register project is an application that simulates a cash register. It is a POS application that allows events to manage their transactions, products, and reusable dishes. The application offers an easy way to track sales and returns. Deposit calculations are automatically added to the various products, all through a user-friendly interface.
- Multi-application management: Easily create multiple applications for different needs.
- Workstation management: Add multiple workstations with a single product list.
- Employee management: Assign different employees to workstations easily by drag-and-drop.
- Product management: Add, delete or modify product information.
- Returnable dishes management: Track returnable dishes sold with a product, or separately.
- Product categories: Classify your products into different categories for better organization.
- Transaction management: Easily track sales and transaction details.
- User-friendly interface: Easy navigation with a modern user interface.
- Localization: Supports multiple languages and currencies through internationalization.
- Laravel
- React
- Tailwind CSS
- Vite
To work on this project, you have two options to set up your development environment:
-
Local Environment:
- PHP ^8.3
- Composer ^2.7
- Node.js ^20
- npm ^10
-
With Docker:
- Docker
-
Access the project directory:
cd CashRegister
-
Install dependencies:
composer install npm install
-
Generate APP_KEY:
php artisan key:generate
-
Storage Link:
php artisan storage:link
-
Migrate the database:
php artisan migrate
-
Start the development server:
php artisan serve npm run dev
The application should now be running at http://localhost:8000
or any other addresses displayed in your terminal.
To simplify the Docker setup, a script (install.sh
) has been provided. Run the following commands in the project's root directory:
sh install.sh
This script performs the following steps:
- Adds a
.env
file in the local environment. - Installs Composer dependencies using Docker.
- Starts the Laravel Sail containers.
- Generates the
APP_KEY
. - Creates the storage link.
- Runs database migrations.
- Installs Node dependencies.
- Explains how to create an alias for sail
- Explains how to get Vite in dev
- Create an application: Create an application, and insert the requested data.
- Configure the application: On the applications page, select the configuration wheel.
- Employee management: On the employee page, you can manage employees, as well as generate a new code for each employee.
- Workstation management: The workstation page lets you manage the assignment of employees and products to each workstation. To do this, simply drag-and-drop employees and products into the various columns. You can also change the order in which products are displayed for each workstation with drag-and-drop.
- Category management: Categories can be added or modified in the control panel. Their display order in this view will be reflected on the cash register application. To change the order, drag-and-drop between categories.
- Dishes management: Dishes can be used with or without deposits, and if you wish to sell a dish, you can choose to sell it separately.
- Product management: Products can be sold with a dishware item. At this point, if the dishware has a deposit, the deposit will be added automatically for each sale of the product. You can also add the product category.
- Transaction display: The transactions page displays all transactions carried out on the application. You can also view the details of each transaction.
- CashRegister: To log in to the cash register as an employee, check your e-mails. When an employee is created, an e-mail is generated with login information. Once on the cash register page, you can toggle between the cart tab and the product tab. You can swipe products if they are not all displayed.
- Dashbaord: The Dashboard section provides an insightful overview of various key metrics and data points related to your business operations. Through interactive charts and visualizations, you can easily monitor sales information, employee statistics, workstation details, and more.
If you discover a security vulnerability within CashRegister, please send an e-mail to Demont Pieric via [email protected]. All security vulnerabilities will be addressed promptly.
The codebase and its associated components, including but not limited to scripts, documentation, and configurations, are the intellectual property of Demont Pieric. All rights are reserved.
This code is made publicly accessible on GitHub for the purpose of showcasing skills and serving as a portfolio. It is not open source, and usage or distribution without explicit permission is prohibited.
This project is not licensed for open-source use. No permission is granted to use, modify, or distribute the codebase, except for the purpose of reviewing and assessing the showcased skills.
Contributions to this project are not accepted at this time. The project is maintained solely for personal and portfolio purposes.
For any issues or inquiries related to this project, please contact [email protected].