/invoicing

A simple invoicing system

Primary LanguagePHP

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": "git@github.com:HazemNoor/invoicing.git",
            "no-api": true
        }
    ]
  • Add using composer require
composer require hazemnoor/invoicing dev-main

Development

  1. Fetch project
git clone git@github.com:HazemNoor/invoicing.git
cd invoicing
  1. Copy file .env.example into .env
cp .env.example .env
  1. Edit file .env if needed

  2. Make sure to have docker-compose installed on your machine, then execute this command to build docker images

make build
  1. 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