Genesis donne vie à vos applications en générant rapidement des projets complets à partir de votre base de données, idéal pour vos MVP.
Genesis simplifie le démarrage de vos projets en réduisant le boilerplate code et en vous permettant de générer des applications prêtes à l'emploi – que ce soit des microservices, des applications MVC ou des front-end JS – grâce à une approche Database First et son moteur de template intégré flexible.
Genesis permet de générer des projets utilisant diverses technologies selon les types de combinaisons :
-
Web API Spring Boot
-
Web API .NET
-
Web API Spring Boot + API Gateway
-
Web API .NET + API Gateway
-
Web API Spring Boot + Web API .NET + Eureka Server + API Gateway
-
Pour les projets basés sur Spring (Types 1, 3, 5) :
- Java (17-23), Spring Boot (3.3.6, 3.2.12), Spring Web, Spring Actuator, Spring Test, Spring Data JPA, Maven (3.9.9), Swagger (springdoc OpenAPI Starter)
-
Pour les projets basés sur .NET (Types 2, 4) :
- C# (8.0-9.0), Entity Framework Core, ASP.NET Core, Swashbuckle
-
Commun aux projets avec API Gateway (Types 3, 4, 5) :
- Spring Cloud (2023) Gateway Reactive Server, Spring Security
-
Spécifique au Type 5 :
- Spring Cloud Netflix Eureka Server & Client, Steeltoe
Genesis prend en charge les bases de données suivantes :
-
PostgreSQL : versions 15 à 16
-
SQL Server : version 2022
-
Oracle : version 19c
-
MySQL : version 8.4.2
- Java 21
- Gradle 8.11
- IntelliJ IDEA 2024.3 (requis pour le plugin)
- Ultimate Edition de préférence, mais compatible avec Community Edition
Disclaimer : Si Gradle n'est pas installé localement, vous pouvez utiliser le wrapper Gradle en exécutant les commandes via ./gradlew (ou gradlew.bat sur Windows) au lieu de gradle.
Le projet est structuré en plusieurs modules. Voici les étapes pour cloner et configurer le projet localement.
- Clonez ce dépôt :
git clone https://github.com/yourusername/genesis-project.git
- Ouvrez le projet dans IntelliJ IDEA.
- Pour synchroniser les dépendances, exécutez la commande suivante :
gradle build
Le projet Genesis est un projet multi-module, avec les modules suivants :
genesis-core
: Ce module contient la librairie principale utilisée par les autres modules (CLI et plugin IntelliJ).genesis-cli
: Ce module fournit l'outil en ligne de commande (CLI) pour générer des projets.genesis-intellij
: Ce module est un plugin pour IntelliJ IDEA permettant d'intégrer Genesis directement dans l'IDE.
-
Cloner, construire et lancer
- Clonez ce dépôt.
- Exécutez
gradle genesis-cli:run
pour démarrer l'application.
-
Build et exécuter le JAR
- Build le fichier JAR avec
gradle genesis-cli:build
. - Exécutez-le avec la commande suivante :
java -jar genesis-cli-0.0.1.jar
- Build le fichier JAR avec
-
Télécharger et exécuter le JAR
- Allez sur la page des releases GitHub de ce projet.
- Téléchargez la dernière version du fichier .jar.
- Exécutez-le avec la commande suivante :
java -jar chemin/vers/genesis-cli-0.0.1.jar
Le plugin IntelliJ permet d'utiliser Genesis directement dans l'IDE.
-
Développement en live
- Clonez le dépôt.
- Exécutez
gradle genesis-intellij:runIde
pour lancer une instance d'IntelliJ IDEA avec le plugin en mode live.
-
Installation via le .zip : genesis-intellij.zip
- Construisez le projet via
gradle genesis-intellij:buildPlugin
pour générer le fichiergenesis-intellij/build/distributions/genesis-intellij.zip
. - Chargez ce fichier depuis une autre instance d'IntelliJ IDEA.
- Construisez le projet via
-
Installation depuis JetBrains Marketplace
- Rendez-vous sur la JetBrains Marketplace ou ouvrez la section Plugins depuis IntelliJ IDEA (Ultimate ou Community Edition).
- Recherchez « Genesis » et installez le plugin.
Le module genesis-core
est au cœur du projet. Il contient la logique de base de génération de code et est utilisé à la
fois par le module genesis-cli
pour l'outil en ligne de commande et par le plugin genesis-intellij
pour
l'intégration dans l'IDE. Ce module comprend des fonctionnalités clés telles que la gestion des bases de données et la
génération de modèles de code.
Pour toute question, consultez notre documentation ou ouvrez une issue sur GitHub. Vos retours et contributions sont toujours les bienvenus.
Les contributions à Genesis sont encouragées ! N'hésitez pas à forker le dépôt, à soumettre des pull requests ou à nous contacter pour partager vos idées et améliorations.
Ce projet est sous licence MIT.