Skip to content

A point-of-sale (POS) application showcasing my development skills. Efficiently manage transactions, products, and reusable dishes for events. Explore the code and don't hesitate to send me your comments! All rights reserved

License

pieric-ux/CashRegister

Repository files navigation

Cash Register

About

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.

Features

  • 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.

Technologies used

  • Laravel
  • React
  • Tailwind CSS
  • Vite

Setup

Prerequisites

To work on this project, you have two options to set up your development environment:

  1. Local Environment:

    • PHP ^8.3
    • Composer ^2.7
    • Node.js ^20
    • npm ^10
  2. With Docker:

    • Docker

Installation - Local Environment

  1. Access the project directory:

    cd CashRegister
  2. Install dependencies:

    composer install
    npm install
  3. Generate APP_KEY:

    php artisan key:generate
  4. Storage Link:

    php artisan storage:link
  5. Migrate the database:

    php artisan migrate
  6. 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.

Installation - Docker Environment

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:

  1. Adds a .env file in the local environment.
  2. Installs Composer dependencies using Docker.
  3. Starts the Laravel Sail containers.
  4. Generates the APP_KEY.
  5. Creates the storage link.
  6. Runs database migrations.
  7. Installs Node dependencies.
  8. Explains how to create an alias for sail
  9. Explains how to get Vite in dev

Use

Application
  1. Create an application: Create an application, and insert the requested data.
ConfigureApplication
  1. Configure the application: On the applications page, select the configuration wheel.
GenerateCode
  1. Employee management: On the employee page, you can manage employees, as well as generate a new code for each employee.
ConfigureWorkstations
  1. 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.
ConfigureCategories
  1. 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.
ConfigureDishes
  1. 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.
ConfigureProducts
  1. 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.
DisplayTransactions
  1. Transaction display: The transactions page displays all transactions carried out on the application. You can also view the details of each transaction.
Cart Products Pay
  1. 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.
Dashboard
  1. 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.

Security and Vulnerabilities

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.

Intellectual Property

Code Ownership

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.

Usage and Distribution

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.

License

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.

Contribution and Attribution

Contributions to this project are not accepted at this time. The project is maintained solely for personal and portfolio purposes.

Reporting Issues and Contact

For any issues or inquiries related to this project, please contact [email protected].

About

A point-of-sale (POS) application showcasing my development skills. Efficiently manage transactions, products, and reusable dishes for events. Explore the code and don't hesitate to send me your comments! All rights reserved

Resources

License

Security policy

Stars

Watchers

Forks