A simple invoicing system
This is a framework-agnostic package to be used as a n invoicing system consisting of the main components:
- Invoice
- Recipient
- Item
- and some other ones, can be found in
Invoicing\Domain
namespace
Built using Domain-Driven Design principles
Installation
This package is still under development, but can be used in any framework using composer
- Add github repository source
"repositories": [
{
"type": "vcs",
"url": "[email protected]:HazemNoor/invoicing.git",
"no-api": true
}
]
- Add using composer require
composer require hazemnoor/invoicing dev-main
Development
- Fetch project
git clone [email protected]:HazemNoor/invoicing.git
cd invoicing
- Copy file
.env.example
into.env
cp .env.example .env
-
Edit file
.env
if needed -
Make sure to have
docker-compose
installed on your machine, then execute this command to build docker images
make build
- Run these commands to execute
composer install
make up
make install
Other commands
- If you need to log in to docker container, use these commands
make up
make login
- Stop docker containers
make down
Testing
You can run unit tests using these commands
make up
make test
Coding Style
The coding style used is PSR-12 and is included with the testing command make test
using PHP_CodeSniffer
Code coverage
Run code coverage, an html report will be generated in .code-coverage
directory
make up
make coverage
Current code coverage is 100%
Todo
- Implement more repositories to store in different medium, like
MySQL