Skip to content
/ owl Public

🧾 (OWL) is an advanced, modular invoicing and business management platform built on Sylius architecture.

License

Notifications You must be signed in to change notification settings

owl-app/owl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Owl logo

Owl is an advanced, modular invoicing and business management platform built on Sylius architecture and Symfony 6.4. The system provides a comprehensive solution for invoice generation, business document management, and financial operations with advanced role-based access control (RBAC), and modern user interface.

πŸš€ Key Features

Owl is primarily an invoicing system that leverages Sylius's proven e-commerce architecture to deliver robust business functionality beyond traditional e-commerce needs.

Core Invoice Management System

  • Multi-type Invoices - Sales invoices, proforma invoices, and correction invoices
  • Advanced Tax System - VAT calculations with tax rate snapshots for compliance
  • Multiple Payment Methods - Wire transfer, cash, card, credit, check, and custom methods
  • Buyer & Seller Management - Complete customer and vendor data management
  • Line Items & Calculations - Detailed invoice line items with automatic net/gross calculations
  • Invoice Series & Numbering - Configurable invoice numbering with series management
  • Multi-currency Support - Exchange rate snapshots for international transactions
  • Payment Tracking - Invoice payment status management (pending, completed)

Business Management Modules

  • AdminBundle - Administrative dashboard
  • UserBundle - User management and authentication
  • RbacBundle - Role-based access control system
  • CategoryBundle - Category management
  • FileBundle - File and media management
  • CompanyBundle - Company information management
  • ContractorBundle - Contractor/vendor management
  • LocationBundle - Location and address management
  • NotificationBundle - Notification system
  • SettingBundle - Application configuration
  • UiBundle - User interface components

Technology Stack

  • Backend: PHP 8.2+, Symfony 6.4, Doctrine ORM
  • Architecture: Based on Sylius Framework architecture patterns
  • Frontend: JavaScript (ES6+), Stimulus, Webpack Encore, Tom Select
  • Database: MySQL 5.7/8.0
  • Testing: PHPUnit, Playwright (E2E)
  • Code Quality: PHPStan, ECS (Easy Coding Standard)
  • Containerization: Docker, Docker Compose

🧾 Invoice System Features

Invoice Types

  • Sales Invoices (sales) - Standard billing documents

Tax Management

  • VAT Calculations - Automatic tax calculations
  • Tax Rate Snapshots - Historical tax rate preservation for compliance
  • Net/Gross Calculations - Flexible calculation from net or gross amounts
  • Multi-tax Support - Different tax rates per line item

Business Features

  • Multi-currency Support - Exchange rate snapshots for foreign transactions
  • Invoice Numbering - Configurable series and sequential numbering
  • Line Item Management - Detailed invoice positions with quantities and units
  • Payment Tracking - Invoice payment status monitoring
  • Buyer/Seller Profiles - Complete customer and vendor management

πŸ”’ RBAC System

Owl utilizes an advanced Role-Based Access Control (RBAC) system using the yiisoft/rbac library. The system enables:

  • Role and permission definitions
  • Role hierarchies
  • Business rules
  • Dynamic permission assignments

πŸ“‹ System Requirements

  • PHP 8.2 or higher
  • Node.js 20+ or 22+
  • MySQL 5.7+ or 8.0+
  • Composer 2.4+
  • Docker and Docker Compose (for development environment)

πŸ› οΈ Installation

Docker

  1. Clone the repository
git clone [repository-url]
cd owl
  1. Configure environment variables
cp .env .env.local
# Edit .env.local as needed
  1. Start the application
docker-compose up -d
  1. Access the application

Manual

# Install required dependencies
$ composer install

# Copy .env file and change the database connection settings
$ cp .env .env.local

# Create database
$ php bin/console doctrine:database:create

# Create database schema
$ php bin/console doctrine:schema:create

# Load fixtures
$ php bin/console sylius:fixtures:load

# Install packages
$ yarn install

# Build dev
$ yarn encore dev

# Create theme dir for admin
$ mkdir -p public/_themes/owl/admin

# Install assets
$ php bin/console sylius:theme:assets:install public/_themes/owl/admin

# Start server
$ symfony serve:start

πŸ” Login:

Admin system:

l: owl@owl.com
p: test123

πŸ§ͺ Testing

Unit Tests (PHPUnit)

vendor/bin/phpunit

E2E Tests (Playwright)

npm run test:e2e
npm run test:e2e:headed  # With GUI
npm run test:e2e:debug   # Debug mode

πŸ“Š Code Quality

Static Analysis (PHPStan)

vendor/bin/phpstan analyse

Coding Standards (ECS)

vendor/bin/ecs check
vendor/bin/ecs check --fix  # Auto-fix issues

JavaScript Linting

npm run lint

πŸ“ Project Structure

owl/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ Kernel.php
β”‚   └── Owl/
β”‚       β”œβ”€β”€ Bundle/          # Application modules
β”‚       β”‚   β”œβ”€β”€ InvoiceBundle/   # Invoice management
β”‚       β”‚   β”œβ”€β”€ AdminBundle/     # Administration panel
β”‚       β”‚   β”œβ”€β”€ UserBundle/      # User management
β”‚       β”‚   └── ...              # Other business modules
β”‚       β”œβ”€β”€ Component/       # Business logic components
β”‚       β”‚   β”œβ”€β”€ Invoice/         # Invoice domain logic
β”‚       β”‚   └── ...              # Other domain components
β”‚       β”œβ”€β”€ Bridge/          # External library integrations
β”œβ”€β”€ config/                  # Application configuration
β”œβ”€β”€ public/                  # Public files
β”œβ”€β”€ templates/              # Twig templates
β”œβ”€β”€ themes/                 # Application themes
β”œβ”€β”€ translations/           # Translations
β”œβ”€β”€ migrations/             # Database migrations
β”œβ”€β”€ tests/                  # Tests
β”œβ”€β”€ e2e/                    # E2E tests
└── assets/                 # Frontend assets

πŸ—οΈ Sylius Architecture

Owl is built on Sylius architecture principles, leveraging:

  • Resource-based architecture - Each business entity is a resource
  • State machine workflows - For invoice status management
  • Grid system - For data listing and management
  • Repository patterns - For data access
  • Factory patterns - For object creation
  • Event-driven architecture - For extensibility

Sylius Components Used

  • SyliusResourceBundle - Resource management
  • SyliusGridBundle - Data grids
  • SyliusThemeBundle - Theming system
  • SyliusMailerBundle - Email management
  • SyliusFixturesBundle - Data fixtures

πŸš€ Deployment

Production

  1. Build Docker images
docker build --target owl_php_prod -t owl:php-prod .
docker build --target owl_nginx -t owl:nginx .
  1. Production environment variables
cp .env.prod .env.local
# Configure production values
  1. Run database migrations
docker run --rm owl:php-prod bin/console doctrine:migrations:migrate --no-interaction

Environments

  • dev - Development
  • test - Testing
  • prod - Production

Conventions

  • PSR-4 autoloading
  • Symfony best practices
  • Sylius coding standards
  • PHPDoc documentation

πŸ‘¨β€πŸ’» Author

PaweΕ‚ KΔ™ska
Email: projekty@pawelkeska.eu

πŸ“„ License

Owl is completely free and released under the MIT License.

If you have any additional details or specific sections you'd like to include, please let me know!

πŸ› Bug Reports

If you find any bugs or issues, please report them through the Issue tracker system.

πŸ”§ Support

For additional help and support, please contact the project author.

About

🧾 (OWL) is an advanced, modular invoicing and business management platform built on Sylius architecture.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •