Des bases de données aux applications complètes — en quelques clics.
Plugin JetBrains + CLI pour générer vos projets Spring Boot, .NET MVC et frontend JS automatiquement.
🐛 Report Bug
·
✨ Request Feature
📑 Table des matières
Arrêtez d'écrire du boilerplate. Concentrez-vous sur la logique métier.
Vous avez une base de données ? Genesis s'occupe du reste. En adoptant une approche Database-First, Genesis analyse votre schéma existant et génère automatiquement :
- ✅ Les modèles (entités JPA, classes C# avec Data Annotations)
- ✅ Les contrôleurs REST ou MVC
- ✅ Les repositories/DAOs
- ✅ Les vues frontend complètes (HTML/CSS/JS)
- ✅ Les fichiers de configuration (application.properties, appsettings.json, etc.)
- ✅ La sécurité (Spring Security, ASP.NET Identity)
- ✅ Les annotations de validation extraites directement de vos contraintes SQL
Tout ça en quelques clics depuis IntelliJ IDEA, Rider, ou en ligne de commande.
| Fonctionnalité | Description |
|---|---|
| 🔌 Plugin JetBrains | Intégré à IntelliJ IDEA et Rider via le menu Tools > Genesis Project Generator |
| 🗃️ Database-First | Connectez-vous à votre BDD, sélectionnez vos tables/vues, Genesis fait le reste |
| 🧠 Génération SQL par IA | Décrivez vos tables en langage naturel, Genesis génère le SQL via LLM (Groq) |
| 🎨 Templates Frontend | Vues CRUD avec filtres avancés, tri multi-colonnes, pagination et export |
| 🔒 Sécurité intégrée | Génération automatique de l'authentification (Spring Security / ASP.NET Identity) |
| 🌐 Multi-frameworks | Spring Boot, .NET Web API, .NET MVC, API Gateway, Eureka Server |
| 🛡️ Validation automatique | Les contraintes SQL (CHECK, UNIQUE, NOT NULL, regex) sont converties en annotations |
| 📦 Multi-SGBD | PostgreSQL, MySQL, SQL Server, Oracle |
| 🌍 i18n | Support de l'internationalisation dans les vues générées |
| 🎛️ Personnalisable | Couleurs, logo, favicon, CSS personnalisé, navbar configurable |
graph LR
A["🗄️ Votre Base de Données"] --> B["⚡ Genesis"]
B --> C["☕ Spring Boot API"]
B --> D["🔷 .NET Web API"]
B --> E["🌐 .NET MVC App"]
B --> F["🎨 Frontend JS"]
B --> G["🛡️ API Gateway"]
B --> H["📡 Eureka Server"]
style A fill:#f9a825,stroke:#f57f17,color:#000
style B fill:#1e88e5,stroke:#1565c0,color:#fff
style C fill:#43a047,stroke:#2e7d32,color:#fff
style D fill:#7b1fa2,stroke:#6a1b9a,color:#fff
style E fill:#7b1fa2,stroke:#6a1b9a,color:#fff
style F fill:#ef6c00,stroke:#e65100,color:#fff
style G fill:#00897b,stroke:#00695c,color:#fff
style H fill:#00897b,stroke:#00695c,color:#fff
graph TD
S1["1️⃣ Initialisation<br>Choix du langage, framework<br>et dossier de sortie"] --> S2["2️⃣ Connexion BDD<br>JDBC URL, credentials<br>et test de connexion"]
S2 --> S3["3️⃣ Sélection<br>Tables, vues et<br>composants à générer"]
S3 --> S4["4️⃣ Configuration<br>Port, sécurité, frontend<br>couleurs, logo, favicon"]
S4 --> S5["5️⃣ Génération<br>Code complet prêt<br>à compiler et lancer"]
style S1 fill:#e3f2fd,stroke:#1e88e5,color:#000
style S2 fill:#e8f5e9,stroke:#43a047,color:#000
style S3 fill:#fff3e0,stroke:#ef6c00,color:#000
style S4 fill:#fce4ec,stroke:#e91e63,color:#000
style S5 fill:#e8eaf6,stroke:#3f51b5,color:#000
| # | Type de projet | Backend | Frontend |
|---|---|---|---|
| 1 | Web API Spring Boot | Java + Spring Boot | React / Angular / Vue.js |
| 2 | Web API .NET | C# + ASP.NET Core | React / Angular / Vue.js |
| 3 | MVC .NET | C# + ASP.NET MVC | Razor Views + JS |
| 4 | Spring Boot + Gateway | Java + Spring Cloud | React / Angular / Vue.js |
| 5 | .NET + Gateway | C# + ASP.NET Core | React / Angular / Vue.js |
| 6 | Architecture complète | Spring Boot + .NET + Eureka + Gateway | React / Angular / Vue.js |
| Stack | Versions | Outils |
|---|---|---|
| ☕ Java / Spring Boot | Java 17-23, Spring Boot 3.2-3.3 | Maven, Spring Data JPA, Spring Security, Swagger |
| 🔷 C# / .NET | C# 8.0-9.0, .NET 8+ | Entity Framework Core, ASP.NET Core, Identity |
| 🌐 MVC .NET | ASP.NET Core MVC | Razor Views, CRUD complet, filtres, tri, pagination |
| Framework | Versions | Langage | Description |
|---|---|---|---|
| ⚛️ React | 18.2.x | TypeScript | Composants fonctionnels, Hooks |
| 17.3.x | TypeScript | Composants standalone, RxJS | |
| 💚 Vue.js | 3.5.x | TypeScript | Vue 3, Composition API |
| Fonctionnalité | Détail |
|---|---|
| 📋 Liste | Tableau avec tri multi-colonnes, pagination, filtres dynamiques |
| 🔍 Détail | Vue détaillée avec champs formatés |
| ✏️ Formulaire | Création et édition avec validation côté client |
| 🗑️ Suppression | Modale de confirmation |
| 📤 Export | Export des données |
| 🌍 i18n | Support multilingue intégré |
| SGBD | Versions testées | Driver |
|---|---|---|
| 🐘 PostgreSQL | 15, 16 | postgresql |
| 🐬 MySQL | 8.0+ | mysql-connector-j |
| 🪟 SQL Server | 2022 | mssql-jdbc |
| 🔶 Oracle | 19c | ojdbc8 |
| Outil | Version minimale | Notes |
|---|---|---|
| Java | 21 | JDK (OpenJDK recommandé) |
| Gradle | 8.11+ | Ou utiliser le wrapper ./gradlew |
| IDE | IntelliJ IDEA 2025.1+ / Rider 2025.1+ | Ultimate ou Community Edition |
Tip
Si Gradle n'est pas installé localement, utilisez ./gradlew (Linux/Mac) ou gradlew.bat (Windows).
git clone https://github.com/superealabs/Genesis.git
cd Genesisgradle clean build -x testLancez une instance de l'IDE avec Genesis pré-installé :
gradle genesis-intellij:runIde- Construisez le plugin :
gradle genesis-intellij:buildPlugin
- Le fichier
.zipsera généré dansgenesis-intellij/build/distributions/ - Dans votre IDE : Settings > Plugins > ⚙️ > Install Plugin from Disk...
- Sélectionnez le fichier
.zipet redémarrez
Bientôt disponible ! Recherchez « Genesis » dans le Marketplace.
Genesis s'intègre dans IntelliJ IDEA de deux façons :
📍 File > New > Project...
- Dans la fenêtre de création de projet, sélectionnez Genesis dans la liste des générateurs (panneau de gauche)
- Suivez l'assistant étape par étape :
- Initialisation : choisissez le langage (Java/C#), le framework et le dossier de sortie
- Connexion BDD : entrez l'URL JDBC, testez la connexion
- Sélection : cochez les tables et vues à inclure
- Configuration : port, sécurité, frontend, couleurs...
- Cliquez sur Create → votre projet est généré ! 🎉
📍 Tools > Genesis Project Generator
- Ouvrez n'importe quel projet dans IntelliJ
- Allez dans Tools > Genesis Project Generator
- Le même assistant apparaît dans une fenêtre de dialogue
- Générez votre code dans le dossier de votre choix
Tip
La méthode par le menu Tools est idéale quand vous voulez générer du code dans un projet existant sans créer un nouveau projet IntelliJ.
Dans Rider, le ModuleBuilder d'IntelliJ n'est pas disponible. Genesis s'utilise donc exclusivement via le menu Tools :
📍 Tools > Genesis Project Generator
- Ouvrez Rider avec n'importe quelle solution ou projet
- Allez dans Tools > Genesis Project Generator
- L'assistant Genesis s'ouvre — le workflow est identique à IntelliJ :
- Initialisation → Connexion BDD → Sélection → Configuration → Génération
- Choisissez votre dossier de sortie et générez votre projet .NET MVC ou Web API
Note
Le plugin déclare la dépendance com.intellij.modules.platform, ce qui le rend compatible avec tous les IDE JetBrains (IntelliJ, Rider, WebStorm, etc.).
Genesis est aussi disponible en ligne de commande, sans IDE.
gradle genesis-cli:rungradle genesis-cli:shadowJar
java -jar genesis-cli/build/libs/genesis-cli-0.0.1.jar- Téléchargez le dernier
.jardepuis la page Releases - Exécutez :
java -jar genesis-cli-x.x.x.jar
Genesis est un projet multi-module Gradle :
graph TD
ROOT["🏗️ genesis-project"] --> CORE["📦 genesis-core\nMoteur de génération"]
ROOT --> CLI["💻 genesis-cli\nInterface en ligne de commande"]
ROOT --> INTELLIJ["🔌 genesis-intellij\nPlugin JetBrains"]
CORE --> |"utilisé par"| CLI
CORE --> |"utilisé par"| INTELLIJ
style ROOT fill:#1e88e5,stroke:#1565c0,color:#fff
style CORE fill:#43a047,stroke:#2e7d32,color:#fff
style CLI fill:#ef6c00,stroke:#e65100,color:#fff
style INTELLIJ fill:#7b1fa2,stroke:#6a1b9a,color:#fff
| Module | Rôle |
|---|---|
genesis-core |
🧠 Cœur du projet. Contient la logique de génération, les templates, les mappings SGBD, les modèles de frameworks et le moteur de template Mustache-like |
genesis-cli |
💻 Interface en ligne de commande. Utilise genesis-core pour générer des projets de manière interactive dans le terminal |
genesis-intellij |
🔌 Plugin JetBrains. Fournit un assistant graphique (wizard) intégré dans IntelliJ IDEA et Rider, avec sélecteur de BDD, preview des tables, et configuration visuelle |
genesis-core/src/main/resources/data_genesis/
├── json/ # Mappings de types (databases.json, languages.json)
├── yaml/ # Définitions de frameworks, requêtes de contraintes
│ ├── frameworks.yaml # Spring Boot, .NET Web API
│ ├── frameworks-mvc.yaml # .NET MVC (vues Razor, contrôleurs CRUD)
│ ├── constraint-queries.yaml # Requêtes SQL pour extraire les contraintes
│ └── framework-securities.yaml # Configuration de sécurité par framework
└── templates/ # Templates frontend (HTML, CSS, JS)
└── Template 1/ # Template par défaut avec design moderne
- 🔌 Plugin IntelliJ IDEA
- 💻 CLI interactive
- 🐘 Support PostgreSQL, MySQL, SQL Server, Oracle
- ☕ Génération Spring Boot Web API
- 🔷 Génération .NET Web API
- 🌐 Génération .NET MVC (Razor + CRUD complet)
- 🛡️ API Gateway + Eureka Server
- 🔒 Sécurité (Spring Security, ASP.NET Identity)
- 🎨 Templates frontend avec filtres, tri et pagination
- 🧠 Génération SQL par IA (LLM)
- 🐴 Compatibilité Rider (via Tools menu)
- 📱 Support React / Angular / Vue.js (frontend séparé)
- 📱 Support NextJs (SSR/SSG)
- 🔄 Mode incrémental (regénérer uniquement ce qui a changé)
- 🧪 Tests unitaires générés automatiquement
- ⌗ Génération de datasets de test
- 🚀 FEATURE - Terminer l'intégration de Spring-MVC
- 🔨 FEATURE - Terminer l'intégration de NodeJs
- 🐳 FEATURE - Intégration de Docker
- 🐙 FEATURE - Intégration de Git
- 🗂️ FEATURE - Prise en charge des types de données géographiques
- 📊 FEATURE - Dashboard automatique (monitoring des projets générés)
- 🎨 FEATURE - Layout personnalisé de l'application, possibilité de création de landing page
- 📁 FEATURE – Upload fichier
- 🔐 FEATURE - Gestion des secrets avec un
.env - 🌍 FEATURE - Version web
- ⏱ FEATURE - Moniteur d'application
- 🖌 FEATURE - Personnalisation des templates de code utilisés par le moteur
- 📝 FEATURE - Prise en charge de CKEditor pour les éditeurs de texte enrichi
- 📖 Mettre en place les bonnes pratiques pour le référencement
- 📰 Parler de la solution dans DEV Community
- 💬 Suivre et interagir dans des Threads et autres réseaux
- 🎥 Contact YT Channel
- 📣 PROMO - Promouvoir GENESIS
Les contributions sont ce qui fait de la communauté open source un endroit incroyable pour apprendre, s'inspirer et créer. Toute contribution est grandement appréciée ! 🙏
- Forkez le projet
- Créez votre branche (
git checkout -b feature/MaSuperFonctionnalite) - Commitez vos changements (
git commit -m '[Feature] Ma super fonctionnalité') - Poussez la branche (
git push origin feature/MaSuperFonctionnalite) - Ouvrez une Pull Request
- 📖 Consultez ce README et les fichiers de configuration pour comprendre le fonctionnement
- 🐛 Ouvrez une issue pour signaler un bug
- 💡 Proposez une feature pour partager vos idées
- 📧 Contactez-nous : vahatra.nomena@yahoo.com
Distribué sous la licence MIT. Voir le fichier LICENSE pour plus d'informations.
Fait avec ❤️ par Superealabs
⭐ Si Genesis vous a aidé, n'hésitez pas à mettre une étoile au projet !