Aller au contenu

TAKKU - Générateur de Projets

Application interne DYNORS - Création automatique de projets DYNORS


🎯 Objectif

TAKKU est le générateur de projets DYNORS. Il crée automatiquement la structure complète d'un nouveau projet (backend Spring Boot + frontend Angular/React) avec toute la configuration CORE (multi-tenancy, sécurité, DB) pré-intégrée.

Gain de temps : 1-2 jours → 5 minutes


📋 Informations Générales

Propriété Valeur
Nom TAKKU
Type Application interne
Domaine Génération code, Scaffolding
Port 8083
Repository dynors-internal/applications/takku
Status Développement

🏗️ Architecture

Stack Technique

  • Backend : Java 17, Spring Boot 3.2
  • Générateur : Python 3.10+ (Jinja2 templates)
  • Base de données : PostgreSQL 15
  • Templates : GitHub Templates DYNORS

✨ Fonctionnalités

1. Génération Projet

  • ✅ Backend Spring Boot 3.2 (Java 17)
  • ✅ Frontend Angular 17 / React 18
  • ✅ Configuration CORE (security, db, events)
  • ✅ Docker Compose local
  • ✅ GitLab CI/CD
  • ✅ README + Documentation

2. Templates Disponibles

Template Backend Frontend Usage
SPRING_BOOT_STANDARD Spring Boot Angular Apps métier classiques
SPRING_BOOT_MICROSERVICE Spring Boot React Microservices
SPRING_BOOT_MINIMAL Spring Boot Aucun APIs backend only

3. Configuration Multi-tenant

  • ✅ Création tenant automatique
  • ✅ Configuration schéma DB
  • ✅ Rôles et permissions
  • ✅ JWT secret

🚀 Flux de Génération

1. Utilisateur → TAKKU : Formulaire création projet
   Inputs:
   - Nom projet (ex: "DAWALALE")
   - Code application (ex: "DAW")
   - Template (SPRING_BOOT_STANDARD)
   - Modules CORE (security, db, events)

   ↓

2. TAKKU : Valide inputs + génère structure

   ↓

3. TAKKU : Crée repository GitLab

   ↓

4. TAKKU : Push code initial

   ↓

5. TAKKU : Crée tenant dans DB

   ↓

6. TAKKU → Utilisateur : Repository prêt !

📦 Structure Générée

<nom-projet>/
├── backend/
│   ├── build.gradle.kts          # Dépendances CORE
│   ├── src/main/java/
│   │   └── com/dynors/projects/<projet>/
│   │       ├── Application.java
│   │       ├── config/
│   │       │   ├── SecurityConfig.java
│   │       │   └── DatabaseConfig.java
│   │       ├── model/
│   │       ├── repository/
│   │       ├── service/
│   │       └── controller/
│   ├── src/main/resources/
│   │   ├── application.yml        # Config CORE
│   │   └── db/migration/          # Flyway
│   └── Dockerfile
├── frontend/
│   ├── package.json
│   ├── src/
│   │   ├── app/
│   │   ├── environments/
│   │   └── assets/
│   └── Dockerfile
├── docker-compose.yml             # PostgreSQL + Redis
├── .gitlab-ci.yml                 # CI/CD
└── README.md

🔐 Configuration Auto-Générée

application.yml

spring:
  application:
    name: <nom-projet>
  datasource:
    url: jdbc:postgresql://localhost:5432/<nom-projet>
    username: dynors
    password: ${DB_PASSWORD}

dynors:
  db:
    multitenant:
      enabled: true
      strategy: SCHEMA_PER_TENANT
  security:
    jwt:
      secret: ${JWT_SECRET}

SecurityConfig.java

@Configuration
@EnableWebSecurity
public class SecurityConfig extends DynorsSecurityConfig {
    // Configuration héritée de CORE
}

🎯 Roadmap

⏳ Phase 1 (En cours)

  • ✅ Templates Spring Boot + Angular
  • ⏳ Génération GitLab repository
  • ⏳ Création tenant automatique
  • ⏳ CLI (ligne de commande)

📋 Phase 2

  • Templates React/Vue.js
  • Générateur microservices
  • Templates modules spécifiques (CRM, E-commerce)
  • UI web (formulaire génération)

📋 Phase 3

  • IA : Génération code depuis specs
  • Templates projets mobiles (Flutter)
  • Générateur tests automatiques

🚀 Utilisation

Via CLI (à venir)

takku create-project \
  --name "DAWALALE" \
  --code "DAW" \
  --template SPRING_BOOT_STANDARD \
  --modules security,db,events \
  --frontend angular

Via API REST

POST /api/takku/projects
{
  "projectName": "DAWALALE",
  "projectCode": "DAW",
  "template": "SPRING_BOOT_STANDARD",
  "modules": ["security", "db", "events"],
  "frontend": "angular"
}

📚 Documentation

  • Architecture : dynors-internal/applications/takku/ARCHITECTURE.md
  • Templates : dynors-internal/applications/takku/templates/

Dernière mise à jour : 30 janvier 2026