Venone est une solution SaaS de gestion locative et immobilière ciblant les propriétaires et agences immobilières. Ce dépôt contient le site vitrine (landing page) de l'application.
- Gestion des biens immobiliers et suivi des propriétaires
- Recensement des unités locatives (appartements, maisons…)
- Enregistrement des locataires et affectation aux logements
- Suivi des paiements de loyers (dépôts, avances, règlements)
- Déduction automatique des frais de gestion (le 10 de chaque mois)
- Calcul automatique des pénalités après le 15 du mois (10% du loyer)
- Alerte d'expulsion après 3 mois d'impayés
- Notifications SMS aux locataires
- Édition de contrats (bailleur / locataire / quittances de règlement)
- Rapports financiers et statistiques d'activité
| Composant | Technologie |
|---|---|
| Langage | Python 3.10 |
| Framework web | Flask 2.2.x |
| Moteur de templates | Jinja2 |
| CSS / UI | Bootstrap 5 + Bootstrap Icons |
| Pages de contenu | Flask-FlatPages (Markdown → HTML) |
| HTTP client | httpx |
| Minification | Flask-Minify |
| Conteneurisation | Docker + docker-compose + Nginx |
| Qualité de code | pre-commit, flake8, isort, black |
| Tests | unittest (stdlib Python) |
| Gestionnaire de paquets | Pipenv |
venone-web/
├── app/
│ ├── plugins.py # Initialisation des extensions Flask
│ ├── cli.py # Point d'entrée
│ ├── config.py # Configurations Dev / Prod / Test
│ ├── routes.py # Toutes les routes du site
│ ├── main.py # App factory (create_app)
│ ├── pages/ # Contenu statique en Markdown (FlatPages)
│ │ ├── a-propos.md
│ │ ├── faq.md
│ │ ├── tarifs.md
│ │ ├── terms.md
│ │ └── …
│ ├── templates/
│ │ ├── _base.html # Template de base
│ │ ├── index.html # Page d'accueil
│ │ ├── sitemap.xml # Sitemap dynamique
│ │ ├── includes/ # Composants réutilisables (partials)
│ │ └── page/ # Pages spécifiques (contact, erreurs, biens…)
│ └── static/ # Assets (images, CSS, JS)
├── tests/ # Tests unitaires
├── Dockerfile
├── compose.yml
├── Makefile
└── Pipfile
| URL | Description |
|---|---|
/ |
Page d'accueil (landing page) |
/contact/ |
Page contact |
/proprietes-disponibles/ |
Liste des propriétés disponibles |
/api/houses/ |
Proxy vers l'API externe (CRM backend) |
/<path:path>/ |
Pages Markdown via FlatPages |
/sitemap.xml/ |
Sitemap XML dynamique |
/robots.txt/ |
Fichier robots.txt |
graph TD
User["🌐 Navigateur utilisateur"] --> Nginx["Nginx (reverse proxy)"]
Nginx --> Flask["Flask App (runserver.py)"]
Flask --> Blueprint["Blueprint: main"]
Blueprint --> Home["/ → index.html"]
Blueprint --> Contact["/contact/ → contact.html"]
Blueprint --> Houses["/proprietes-disponibles/ → house_list.html"]
Blueprint --> APIProxy["/api/houses/ → httpx → API externe"]
Blueprint --> FlatPages["/<path>/ → FlatPages (Markdown)"]
Blueprint --> Sitemap["/sitemap.xml → dynamique"]
APIProxy --> ExternalAPI["CRM / Backend API"]
Home --> CRM["CRM_BUILDER (liens signup/login)"]
- Python 3.10+
- Pipenv
- Docker & docker-compose (optionnel)
git clone https://github.com/flavien-hugs/venone-web.git
cd venone-webcp .env.example .env
# Éditer .env avec vos valeurs (SECRET_KEY, API_URL, CRM_BASE_URL…)pipenv install
# ou
make pipenv-installpipenv shell
python runserver.py
# ou
make run # via Dockerhttp://localhost:5000/
make help # Afficher toutes les commandes disponibles
make pipenv-install # Installer les dépendances
make test # Lancer les tests unitaires
make run # Lancer avec Docker Compose
make logs # Voir les logs des conteneurs
make down # Arrêter et supprimer les conteneursmake test
# ou
python3 -m unittest discover -s testsCode : flavien-hugs
Ce projet est sous licence MIT — voir le fichier LICENSE pour plus de détails.