Skip to content
superealabsPublic

About

Générez des applications en mode Database First. Disponible en CLI et plugin IntelliJ, il réduit le boilerplate et accélère le développement.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Repository files navigation

Contributors Forks Stargazers Issues MIT License


⚡ Genesis

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
  1. 🎯 Pourquoi Genesis ?
  2. 🚀 Fonctionnalités clés
  3. 🔧 Comment ça marche ?
  4. 🏗 Technologies supportées
  5. 📋 Prérequis
  6. ⚙ Installation & Prise en main
  7. 🖥️ Utilisation dans IntelliJ IDEA
  8. 🐴 Utilisation dans Rider
  9. 💻 Utilisation en CLI
  10. 🧱 Architecture du projet
  11. 🗺 Roadmap
  12. 🤝 Contribuer
  13. 💬 Obtenir de l'aide
  14. 📜 Licence

🎯 Pourquoi Genesis ?

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.

(back to top)


🚀 Fonctionnalités clés

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

(back to top)


🔧 Comment ça marche ?

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
Loading

Le workflow Genesis en 5 étapes

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
Loading

(back to top)


🏗 Technologies supportées

Types de projets générés

# 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

Backends

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

Frontends

Framework Versions Langage Description
⚛️ React 18.2.x TypeScript Composants fonctionnels, Hooks
🅰️ Angular 17.3.x TypeScript Composants standalone, RxJS
💚 Vue.js 3.5.x TypeScript Vue 3, Composition API

Frontend (Template 1)

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é

🗄️ Bases de données supportées

SGBD Versions testées Driver
🐘 PostgreSQL 15, 16 postgresql
🐬 MySQL 8.0+ mysql-connector-j
🪟 SQL Server 2022 mssql-jdbc
🔶 Oracle 19c ojdbc8

(back to top)


📋 Prérequis

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).

(back to top)


⚙ Installation & Prise en main

1. Cloner le projet

git clone https://github.com/superealabs/Genesis.git
cd Genesis

2. Construire le projet

gradle clean build -x test

3. Installer le plugin dans votre IDE

Option A : Mode développement (Live)

Lancez une instance de l'IDE avec Genesis pré-installé :

gradle genesis-intellij:runIde

Option B : Installer le .zip

  1. Construisez le plugin :
    gradle genesis-intellij:buildPlugin
  2. Le fichier .zip sera généré dans genesis-intellij/build/distributions/
  3. Dans votre IDE : Settings > Plugins > ⚙️ > Install Plugin from Disk...
  4. Sélectionnez le fichier .zip et redémarrez

Option C : JetBrains Marketplace

Bientôt disponible ! Recherchez « Genesis » dans le Marketplace.

(back to top)


🖥️ Utilisation dans IntelliJ IDEA

Genesis s'intègre dans IntelliJ IDEA de deux façons :

Méthode 1 : Nouveau Projet

📍 File > New > Project...

  1. Dans la fenêtre de création de projet, sélectionnez Genesis dans la liste des générateurs (panneau de gauche)
  2. 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...
  3. Cliquez sur Create → votre projet est généré ! 🎉

Méthode 2 : Menu Tools (projet existant)

📍 Tools > Genesis Project Generator

  1. Ouvrez n'importe quel projet dans IntelliJ
  2. Allez dans Tools > Genesis Project Generator
  3. Le même assistant apparaît dans une fenêtre de dialogue
  4. 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.

(back to top)


🐴 Utilisation dans Rider

Dans Rider, le ModuleBuilder d'IntelliJ n'est pas disponible. Genesis s'utilise donc exclusivement via le menu Tools :

📍 Tools > Genesis Project Generator

  1. Ouvrez Rider avec n'importe quelle solution ou projet
  2. Allez dans Tools > Genesis Project Generator
  3. L'assistant Genesis s'ouvre — le workflow est identique à IntelliJ :
    • Initialisation → Connexion BDD → Sélection → Configuration → Génération
  4. 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.).

(back to top)


💻 Utilisation en CLI

Genesis est aussi disponible en ligne de commande, sans IDE.

Lancer directement

gradle genesis-cli:run

Construire un JAR exécutable

gradle genesis-cli:shadowJar
java -jar genesis-cli/build/libs/genesis-cli-0.0.1.jar

Depuis les Releases GitHub

  1. Téléchargez le dernier .jar depuis la page Releases
  2. Exécutez :
    java -jar genesis-cli-x.x.x.jar

(back to top)


🧱 Architecture du projet

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
Loading
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

Contenu clé de genesis-core

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

(back to top)

1. **Développement en live** - Clonez le dépôt. - Pour lancer une instance d'IntelliJ IDEA avec le plugin en mode live, exécutez : ``` bash gradle genesis-intellij:runIde ```

🗺 Roadmap

✅ Fonctionnalités complétées

  • 🔌 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é)

🚀 À venir (Backlog & Todo)

  • 📱 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

📣 Marketing & Communauté

  • 📖 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

(back to top)


🤝 Contribuer

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 ! 🙏

  1. Forkez le projet
  2. Créez votre branche (git checkout -b feature/MaSuperFonctionnalite)
  3. Commitez vos changements (git commit -m '[Feature] Ma super fonctionnalité')
  4. Poussez la branche (git push origin feature/MaSuperFonctionnalite)
  5. Ouvrez une Pull Request

(back to top)


💬 Obtenir de l'aide

  • 📖 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

(back to top)


📜 Licence

Distribué sous la licence MIT. Voir le fichier LICENSE pour plus d'informations.

(back to top)


Fait avec ❤️ par Superealabs

⭐ Si Genesis vous a aidé, n'hésitez pas à mettre une étoile au projet !

About

Générez des applications en mode Database First. Disponible en CLI et plugin IntelliJ, il réduit le boilerplate et accélère le développement.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages