Factos
Un clone d'InvoiceShelf réécrit en C# / Blazor (.NET 10) : devis, factures, paiements, dépenses et achats, avec une API REST compatible InvoiceShelf.
:::caution En développement
L'interface web est utilisable de bout en bout, mais l'API /api/v1 n'est portée que partiellement (domaine Comptes). L'application mobile (iOS / Android) se trouve dans un dépôt séparé.
:::
Fonctionnalités
- Ventes : clients, articles, devis, factures, factures récurrentes (cron), avoirs, paiements répartis sur plusieurs factures, crédits clients.
- Achats : fournisseurs, factures et avoirs fournisseurs, paiements, remboursements.
- Dépenses et un tableau de bord de trésorerie.
- PDF (QuestPDF) avec modèles personnalisables, envoi par e-mail (SMTP) avec suivi d'ouverture, liens publics pour les clients.
- Champs personnalisés : définitions, saisie et impression.
- Logo, 4 thèmes d'interface, mode clair / sombre.
- Trois bases de données, choisies à l'installation : SQLite, PostgreSQL ou MySQL.
- Import depuis une installation InvoiceShelf existante (comptes, mots de passe et jetons d'API conservés).
- Parité de l'API : un client de l'API InvoiceShelf existant doit fonctionner sans modification (authentification Bearer Sanctum, enveloppes et erreurs au format Laravel).
Installation
Docker
docker compose up -d
Depuis les sources
dotnet run --project src/Factos
Utilisation
Premier lancement
- Docker : ouvrez
http://localhost:8080. L'assistant d'installation vous guide pour la base de données, le compte administrateur et l'entreprise. Tout l'état persistant se trouve dans le volume/app/App_Data. - Depuis les sources : ouvrez
http://localhost:5221. Au premier lancement, l'assistant/setupécritappsettings.local.jsonpuis arrête le processus : relancez la commande.
Mises à jour
- Schéma : aucune migration ne s'exécute au démarrage. Une migration en attente redirige vers
/update, où un super administrateur confirme. - Application : Paramètres › Mises à jour télécharge la dernière release GitHub.
Feuille de route
- Compléter les endpoints
/api/v1pour atteindre la parité complète avec InvoiceShelf - Application mobile (.NET MAUI Blazor Hybrid)
- Gestion de plugins
- Module de sauvegarde automatique
- Authentification à deux facteurs (TOTP)
- Authentification par passkey (WebAuthn)