Le processus

Comment Katappult fonctionne

Un processus simple en 4 étapes, de l'idée à l'application déployée.

1

Décrivez votre besoin

Parlez à Claude Code ou fournissez vos maquettes et spécifications.

2

Katappult crée

Backend Spring Boot, frontend React, Règles métiers, tests unitaires, migrations de base de données — tout est généré automatiquement.

3

Personnalisez avec l'IA

Continuez à travailler avec votre assistant IA préféré sur le code généré.

4

Déployez et possédez

Le code vous appartient. Déployez où vous voulez, sur votre infrastructure.

La technologie

Spring Boot

Backend Java enterprise-grade, APIs REST sécurisées, microservices prêts pour la production.

React

Frontend moderne, composants réutilisables, TypeScript, tests unitaires inclus.

PostgreSQL + Liquibase

Base de données relationnelle robuste avec migrations versionnées et reproductibles.

Flutter

Application mobile cross-platform iOS & Android à partir d'une seule base de code. Performances natives, rendu fluide.

Docker

Conteneurisation de l'ensemble du stack pour un déploiement cohérent, reproductible et indépendant de l'infrastructure.

IA native

Intégration MCP pour Claude Code, GitHub Copilot, Cursor et tous les assistants modernes.

Exemple réel

Un prompt, une feature complète

Voici un exemple de prompt soumis à Katappult — endpoints, règles techniques, modèles de réponse. Tout est décrit en markdown, rien à coder.

feature-request.md
# Backend API – Custom Annonce feature request

## Objectif

Créer une API REST custom pour l'entité **Annonce** avec :
- endpoints publics (sans authentification)
- endpoints sécurisés (JWT requis)
- requêtes optimisées (QueryDSL, sans N+1)

---

## Règles techniques OBLIGATOIRES

- Aucun filtrage en mémoire
- Toutes les requêtes doivent être faites avec QueryDSL
- Utiliser `leftJoin(...).fetchJoin()` pour éviter le N+1
- Respecter l'architecture : Repository → Service → Controller
- Toutes les annonces publiques doivent avoir `lifecycleState = PUBLISHED`

---

## Endpoints publics
**Base path :** `/api/pub/v1/custom-annonce`
**Authentification :** aucune

### GET `/{entityUid}/details`
Retourne le détail complet d'une annonce.
**Contraintes :** Charger les relations (category, boutique, produit) via fetch join.

### GET `/new-annonces`
Retourne les 30 annonces les plus récentes.
**Contraintes :** lifecycleState = PUBLISHED · tri date DESC · limite 30

### GET `/list`
Liste paginée avec filtres optionnels.

| Paramètre    | Type    | Défaut           |
|-------------|---------|-----------------|
| searchTerm  | string  | -               |
| ville       | string  | -               |
| categoryUid | string  | -               |
| productUid  | string  | -               |
| enStock     | boolean | true            |
| page        | int     | requis          |
| pageSize    | int     | requis          |
| sort        | string  | createdDate,desc|

---

## Endpoints sécurisés
**Base path :** `/api/v1/custom-annonce`
**Authentification :** JWT requis

### GET `/annonces-of-user`
Retourne les annonces paginées d'un utilisateur (userUid, page, pageSize, status, sort).

### DELETE `/delete-annonces`
Suppression logique via `DeleteRequest` existant (`com.katappult.core.rest.vo.DeleteRequest`).
Ne pas créer de nouvelle classe.

---

## Modèles de réponse

### `CustomAnnonceListRestModel` — étend `AnnonceListRestModel`
| Champ       | Source                            |
|-------------|-----------------------------------|
| categoryUid | annonce.getCategory().getUid()    |
| categoryName| annonce.getCategory().getName()   |

### `CustomAnnonceRestResponse` — étend `AnnonceRestResponse`
| Champ       | Source                            |
|-------------|-----------------------------------|
| categoryUid | annonce.getCategory().getUid()    |
| categoryName| annonce.getCategory().getName()   |
| boutiqueUid | annonce.getBoutique().getUid()    |
| boutiqueName| annonce.getBoutique().getName()   |
| produitUid  | annonce.getProduit().getUid()     |
| produitName | annonce.getProduit().getName()    |

---

## Agent

| Rôle                   | Fichier agent         |
|------------------------|-----------------------|
| Développement backend  | `backend-developer.md` |

Prêt à adopter des agents Katappult ?

Rejoignez la révolution du vibe coding et commencez à bâtir vos applications dès aujourd'hui.

Réserver une démo