Skip to main content

Générateur de Projet Intelligent – Créez des projets backend prêts à l'emploi

Project description

🚀 GPI – Générateur de Projet Intelligent

Crée un projet backend complet en 30 secondes.

GPI te pose quelques questions simples, puis génère tout le code pour toi : fichiers, dossiers, base de données, authentification, Docker… prêt à lancer.


📦 Installation

Ouvre un terminal (invite de commandes) et tape :

pip install gpi

⚠️ Sur Windows, si tu vois « accès refusé » :

  • Clique droit sur Terminal ou PowerShellExécuter en tant qu'administrateur
  • Puis relance pip install gpi

⚠️ Sur Mac/Linux, si « permission denied » :

pip install --user gpi

Vérifie que ça marche :

gpi version

Tu dois voir GPI v0.1.0.


🎬 Utilisation rapide (2 minutes)

Méthode 1 : Mode interactif (le plus simple)

gpi init

GPI te pose les questions une par une :

🔧 Quel framework souhaitez-vous utiliser ?
  1. fastapi – Moderne, asynchrone, idéal pour API rapides
  2. flask – Léger et flexible, parfait pour prototypes
  3. django – Tout-en-un, idéal pour applications complexes
  Votre choix (1-3) : 1

🏗️  Quelle architecture ?
  1. monolithique – Un seul projet, simple à démarrer
  2. microservices – Plusieurs services indépendants (avancé)
  Votre choix (1-2) : 1

🎓 Quel est votre niveau ?
  1. debutant – Projet simple et bien expliqué
  2. intermediaire – Plus d'options techniques
  3. expert – Architecture production-ready
  Votre choix (1-3) : 1

📁 Nom du projet : monapi
📝 Description : Ma première API
🔐 Ajouter l'authentification JWT ? : oui
📂 Organisation des routes CRUD : 1
🌐 Langue des commentaires : 1 (Français)

⏳ Génération en cours...
✅ Projet généré avec succès dans "monapi"

Méthode 2 : Avec un fichier de configuration

Crée un fichier projet.yaml :

framework: fastapi
architecture: monolithique
niveau: debutant
nom: monapi
description: "Ma première API"
auth: jwt
database: sqlite
route_org: single
langue: fr
tests: true

Puis lance :

gpi init --config projet.yaml

🏃 Lancer le projet généré

FastAPI

cd monapi
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Ouvre http://localhost:8000/docs dans ton navigateur → tu verras toutes les routes.

Flask

cd monapi
pip install -r requirements.txt
python run.py

Django

cd monapi
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver 0.0.0.0:8000

📱 Tester depuis ton téléphone

GPI détecte automatiquement l'adresse IP de ton ordinateur. Après la génération, il t'affiche quelque chose comme :

📱 Mobile : http://192.168.1.20:8000

Pour que ça marche :

  1. Ton téléphone doit être sur le même Wi-Fi que ton PC.
  2. Ouvre l'URL dans le navigateur de ton téléphone.
  3. Si ça ne marche pas → vérifie ton pare-feu (désactive-le temporairement pour tester).

🎓 Les 3 niveaux expliqués

🟢 Débutant

  • Questions simples (nom, auth oui/non, langue)
  • Base de données SQLite (rien à installer)
  • Code très commenté en français
  • Parfait pour apprendre

🟡 Intermédiaire

  • Choix de la base de données (SQLite ou PostgreSQL)
  • Tests unitaires
  • Docker pour la base de données
  • Organisation personnalisable des routes
  • Commentaires fr/en/bilingue

🔴 Expert

  • Microservices avec Docker Compose complet
  • Cache Redis
  • File d'attente (Celery/RQ)
  • Monitoring (Prometheus/Grafana)
  • Tests unitaires + intégration

📁 Ce que GPI génère

FastAPI monolithique (exemple)

monapi/
├── .env                 ← Variables secrètes (NE PAS partager)
├── .env.example         ← Modèle pour les autres développeurs
├── .gitignore           ← Fichiers ignorés par Git
├── README.md            ← Documentation de ton projet
├── requirements.txt     ← Liste des packages à installer
├── main.py              ← Point d'entrée de l'application
├── database.py          ← Connexion à la base de données
├── models/
│   └── item.py          ← Définition des tables
├── schemas/
│   └── item.py          ← Validation des données entrantes
├── routers/
│   └── items.py         ← Routes API (GET, POST, PUT, DELETE)
├── auth/                ← (si authentification activée)
│   ├── security.py      ← Hachage des mots de passe + JWT
│   └── routes.py        ← Inscription, connexion, profil
└── tests/               ← (si tests activés)
    └── test_items.py    ← Tests automatiques

Microservices (exemple)

monprojet/
├── docker-compose.yml   ← Lance tous les services d'un coup
├── .env                 ← Variables partagées
├── README.md
└── services/
    ├── auth/            ← Service d'authentification
    │   ├── main.py
    │   ├── Dockerfile
    │   └── ...
    ├── users/           ← Service utilisateurs
    │   └── ...
    └── products/        ← Service produits
        └── ...

🔧 Options de la commande

Commande Description
gpi init Lance l'assistant interactif
gpi init -c projet.yaml Génère depuis un fichier config
gpi init --no-network Désactive la détection IP réseau
gpi version Affiche la version
gpi --help Affiche l'aide

📝 Référence des options du fichier YAML

Clé Valeurs possibles Défaut
framework fastapi, flask, django fastapi
architecture monolithique, microservices monolithique
niveau debutant, intermediaire, expert debutant
nom Lettres, chiffres, _ (pas d'espace) monapi
description Texte libre ""
auth jwt, sessions, oauth2, aucune aucune
database sqlite, postgresql, mysql sqlite
route_org single (1 fichier), split (4 fichiers) single
langue fr, en, bilingue fr
tests true, false false
docker true, false false
services Liste de noms (microservices) [auth, users]
redis true, false false
queue celery, rq, aucune aucune
monitoring true, false false
port Numéro de port 8000

❓ Problèmes courants

« gpi : commande introuvable »

Le dossier d'installation Python n'est pas dans le PATH.

# Solution : lance avec python -m
python -m gpi init

Ou ajoute le dossier Scripts de Python au PATH de ton système.

« Permission denied » / « Accès refusé »

  • Windows : ouvre le terminal en tant qu'administrateur
  • Mac/Linux : utilise sudo gpi init ou change de dossier (cd ~/projets)

« Le port 8000 est déjà utilisé »

Un autre programme utilise ce port. Change-le :

# FastAPI
uvicorn main:app --reload --port 8001
# Django
python manage.py runserver 0.0.0.0:8001

« Mon téléphone ne peut pas se connecter »

  1. Vérifie que tu es sur le même réseau Wi-Fi
  2. Vérifie que le pare-feu autorise le port
  3. Retrouve ton IP manuellement :
    • Windows : ipconfig → cherche « IPv4 »
    • Mac/Linux : ifconfig ou ip addr

🧪 Lancer les tests de GPI

pip install pytest
python -m pytest tests/ -v

📄 Licence

MIT – Libre d'utilisation, modification et distribution.


Fait avec ❤️ par l'équipe GPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_gpi-0.1.0.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_gpi-0.1.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file py_gpi-0.1.0.tar.gz.

File metadata

  • Download URL: py_gpi-0.1.0.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py_gpi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 09f75ba4c8a4824e85e394e8d8c8afa8e78f3311ee25b7153952c146ffe39c45
MD5 1a698ff99353edd9322bd427a42ddc6a
BLAKE2b-256 95fff6aeef0c27f0a72a548db2ef014efa84b5155ad6b2b741782576174ccac1

See more details on using hashes here.

File details

Details for the file py_gpi-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: py_gpi-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py_gpi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46ae7ea03a5b33c7199cf4e7bcee35f863409d80567462d7fa892744e317b242
MD5 ba49f271de9d8a16c3f3551b4fab91c3
BLAKE2b-256 e8ba2b6409649f4c3fdc2edab550352a764b74771fc291331c24184d7ddaf4a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page