Files
RentalManager/README.md
2026-04-11 12:12:07 +02:00

4.7 KiB

Rental Manager

Application de gestion comptable de biens locatifs — Go + SvelteKit + SQLite.
Interface web embarquée, exécutable unique, sans dépendances externes.

Fonctionnalités

  • Biens immobiliers — gestion multi-biens (longue durée & Airbnb)
  • Transactions — revenus & dépenses par bien, catégories fiscales
    • Import QIF/QFX depuis votre banque
    • Ventilation sur plusieurs biens (split)
    • Ventilation mixte revenu/dépense
    • Fusion de prélèvements scindés en deux par la banque
  • Prêts immobiliers — tableaux d'amortissement, split automatique intérêts/capital
  • Calendrier — grille mensuelle avec sync iCal Airbnb automatique (toutes les heures)
  • Documents — pièces jointes classées par année/catégorie, export ZIP
  • Export fiscal — CSV annuel par bien (revenus, charges déductibles)
  • Catégories — personnalisables, avec indicateur déductibilité fiscale
  • Multi-utilisateurs — authentification par session

Stack

Composant Technologie
Backend Go 1.25, gorilla/mux, modernc.org/sqlite
Frontend SvelteKit + TailwindCSS + Chart.js + lucide-svelte
Base de données SQLite (mode WAL)
Build Windows go build -ldflags="-H windowsgui"
Déploiement Docker Compose

Développement

# Backend (port 9000)
go mod tidy
go run ./cmd/server

# Frontend (autre terminal, port 5173)
cd frontend
npm install
npm run dev

Le frontend dev proxy les appels /api/* vers :9000.

Build production (Windows)

build.bat

Génère RentalManager.exe — interface web embarquée dans le binaire, sans console visible.

Déploiement Docker (ESXi / NAS)

docker compose up -d --build

Application accessible sur http://<IP>:8080.

Structure

cmd/server/main.go          Point d'entrée — routes, middlewares, démarrage
internal/
  auth/                     Authentification, sessions cookie, middleware
  property/                 Biens immobiliers (CRUD, URL iCal)
  transaction/              Revenus & dépenses, split, ventilation mixte
  calendar/                 Événements d'occupation (CRUD)
  ical/                     Sync flux iCal Airbnb — goroutine horaire
  document/                 Upload pièces jointes, export ZIP année/catégorie
  fiscal/                   Export CSV annuel
  loan/                     Prêts immobiliers, tableaux d'amortissement, split auto
  category/                 Catégories de transactions
  importer/                 Import QIF/QFX bancaire
  db/                       SQLite init + migrations
web/                        Frontend SvelteKit embarqué (embed.FS)
frontend/src/
  routes/
    +page.svelte            Tableau de bord (graphiques, KPI)
    transactions/           Liste & création de transactions
    import/                 Import bancaire QIF
    calendar/               Calendrier mensuel
    documents/              Gestion des pièces jointes
    loans/                  Prêts & amortissement
    properties/             Gestion des biens
    categories/             Catégories
    fiscal/                 Export fiscal
    profile/                Profil & mot de passe
  lib/stores/api.js         Client HTTP centralisé
data/
  rental.db                 Base SQLite (créée au premier démarrage)
  documents/                Fichiers uploadés

Variables d'environnement

Variable Défaut Description
PORT 9000 Port d'écoute
TZ Europe/Paris Timezone

Premiers pas

  1. Lancer l'application — un compte admin@rental.local / admin1234 est créé automatiquement
  2. Changer le mot de passe dans Profil
  3. Créer vos biens dans Biens
  4. Pour les biens Airbnb : coller l'URL iCal dans la fiche bien
    (Airbnb → Annonce → Paramètres → Calendrier → Exporter le calendrier)
  5. Configurer vos Catégories si besoin
  6. Importer vos relevés bancaires via Import

Sync iCal Airbnb

La goroutine ical.Service synchronise automatiquement toutes les heures.
Un bouton Synchroniser dans le calendrier force la sync immédiate.
Les résultats sont loggués dans la table ical_sync_log.

À chaque sync, les anciens événements Airbnb de la propriété sont supprimés et remplacés (ce qui gère aussi les annulations de réservations).

Import bancaire

Formats supportés : QIF, QFX
(Espace client → Mes comptes → Télécharger → Format QIF)

Fonctionnalités :

  • Détection automatique des lignes déjà importées
  • Ventilation sur plusieurs biens
  • Ventilation mixte revenu + dépense (ex: loyer reçu + appel de fonds)
  • Fusion de deux prélèvements scindés par la banque → split intérêts/capital via tableau d'amortissement