Navigazione Docs

Contribuire

Come contribuire al progetto Fatturino: bug report, pull request e linee guida.

Come Contribuire

Fatturino e un progetto open source (AGPL v3) ospitato su Codeberg. Ogni contributo e benvenuto.

Segnalare un Bug

  1. Controlla che il bug non sia gia stato segnalato nelle Issues
  2. Apri una nuova issue descrivendo:
    • Cosa ti aspettavi
    • Cosa e successo
    • Come riprodurre il problema
    • Versione di Fatturino (vedi footer dell'app)

Proporre una Funzionalita

Apri una issue con il tag "feature request" e descrivi la funzionalita che vorresti vedere, il caso d'uso e perche sarebbe utile.

Inviare una Pull Request

  1. Fai un fork del repository su Codeberg
  2. Crea un branch dal main: git checkout -b feature/nome-funzionalita
  3. Scrivi il codice seguendo le convenzioni del progetto
  4. Aggiungi test per le nuove funzionalita
  5. Assicurati che tutti i test passino: composer test
  6. Apri la PR con una descrizione chiara delle modifiche

Convenzioni di Codice

  • Lingua del codice: tutto in inglese (classi, metodi, variabili, tabelle, migration)
  • Comunicazione: in italiano (issue, PR, documentazione)
  • Nomi di file: kebab-case (es. invoice-service.php)
  • Classi e componenti: PascalCase (es. InvoiceService)
  • Funzioni piccole: ogni funzione deve avere una sola responsabilita
  • Test: Pest, con nomi descrittivi in inglese

Architettura del Progetto

Struttura Principale

fatturino/
├── app/
│   ├── Enums/           # Enum PHP (FundType, SdiStatus, etc.)
│   ├── Contracts/       # Interfacce per il sistema plugin
│   ├── Livewire/        # Componenti Livewire (UI)
│   ├── Models/          # Eloquent models
│   └── Services/        # Logica di business
├── packages/            # Plugin (ogni plugin e un package)
├── resources/views/     # Blade templates
├── routes/              # Definizione route
└── tests/               # Test Pest

Principi Chiave

  • Importi in centesimi: tutti gli importi sono salvati come interi (es. 10000 = 100,00 euro)
  • Estensioni via plugin: le nuove funzionalita vanno nel sistema plugin quando possibile, il core apre solo extension point
  • Livewire full-page: ogni pagina e un componente Livewire, gestito nelle route
  • Mary UI: usa i componenti Mary UI per l'interfaccia

Ambiente di Sviluppo

# Clona il progetto
git clone https://codeberg.org/fatturino/fatturino.git
cd fatturino

# Installa dipendenze
composer install
npm install

# Configura ambiente
cp .env.example .env
php artisan key:generate

# Crea database SQLite per sviluppo
touch database/database.sqlite
php artisan migrate

# Avvia il server
composer dev

Eseguire i Test

# Tutti i test
composer test

# Un singolo test
./vendor/bin/pest --filter="nome del test"

Prossimi Passi