









This project is a Laravel-based Invoice Management System designed to help users create, manage, and track client invoices efficiently. It includes features like partial payments, role-based access control, and dynamic invoice filtering. The project also integrates Laravel Breeze for authentication and SweetAlert2 for handling user alerts.
- Features
- Installation
- Registering a User for Local Development
- Usage
- Technologies Used
- Screenshots
- Project Structure
- License
-
Invoice Creation and Management: Easily create, update, and manage invoices for clients.
-
Partial Payments: Manage partial payments and automatically update client balances.
-
Role-based Access Control: Admins have full access, while sales users can only view and manage invoices.
- AJAX Dynamic Data Fetching: Fetch client and product details dynamically while creating or editing invoices.`
- Print Functionality: Print invoices with a click of a button.
To run the application using Docker, ensure that Docker is installed on your machine and follow these steps:
-
Clone the repository:
git clone https://github.com/Aya-Sherif/Invoices_System.git
-
Navigate to the project directory:
cd Invoices_System
-
Build and run the Docker container:
docker-compose up --build
-
Set up the environment file:
-
Copy
.env.example
to.env
and update the environment variables:cp .env.example .env
-
Configure your database, mail, and other settings in the
.env
file.
-
-
Run database migrations:
After starting the container, you need to run the migrations to set up your database. Open another terminal window and execute:
docker exec -it <container_name> php artisan migrate
Replace
<container_name>
with the actual name of your running Docker container. You can find the container name by runningdocker ps
. -
Access the application in your web browser at http://localhost:8000.
-
Admin Access: To access the admin panel, navigate to the
/login
page (default root is for user access).
If you prefer running the application without Docker, follow these steps:
-
Clone the Repository:
git clone https://github.com/Aya-Sherif/Invoices_System.git cd Invoices_System
-
Install dependencies:
composer install npm install npm run dev
-
Set up the environment file:
-
Copy
.env.example
to.env
and update the environment variables:cp .env.example .env
-
Configure your database, mail, and other settings in the
.env
file.
-
-
Migrate the database:
php artisan migrate
-
Run the application:
php artisan serve
In the production environment, the register page is disabled, but if you’re running this project locally and need access to the admin panel, follow these steps:
-
Open the
routes/auth.php
file and uncomment the part that registers a user. -
After that, go to
/register
in your browser and create your admin account by entering your email and password. -
Once you have registered, you can log in to the admin panel by navigating to
/login
.
- After installation, log in as an admin to have full control over the system.
- Sales, Accounts or Stock users will have restricted access to certain features.
- Use the print functionality to generate a hard copy of the invoice.
- Laravel 11: Backend framework powering the web application.
- Bootstrap 3: Front-end framework for responsive design.
- SweetAlert2: Handles alert and feedback for user interactions.
- JavaScript: Powers dynamic features such as the slideshow.
app/Services
: Contains service classes such asClientService
,ProductService
, etc.app/Http/Controllers
: Manages routes and core logic of the application.resources/views
: Contains Blade templates for the frontend design.database/migrations
: Handles database schema migration (without seeders).
Here are some screenshots of the application:
If you would like to contribute to this project, please fork the repository and submit a pull request with your changes.
This project is open-source under the MIT license.

Leave a Reply