Skip to content

macaron-software/software-factory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

474 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Software Factory

Multi-Agent Software Factory — Agents IA autonomes orchestrant le cycle de vie complet du produit

License: AGPL v3 Python 3.10+ FastAPI Playwright


📋 Table des matières


Qu'est-ce que c'est ?

Software Factory est une plateforme multi-agents autonome qui orchestre le cycle de vie complet du produit via des agents IA intelligents. De l'idéation au déploiement, elle coordonne des agents spécialisés gérant les personas, les exigences, la conception, le développement, les tests et l'amélioration continue.

Chaque agent est responsable d'une phase spécifique du cycle de vie et collabore de manière autonome pour livrer un produit de qualité.


Prérequis

  • Python 3.10 ou supérieur
  • Docker et Docker Compose
  • Node.js 18+ (pour Playwright)
  • pip (gestionnaire de paquets Python)

Installation

Méthode 1 : Avec Docker (Recommandée)

# Cloner le projet
git clone https://github.com/votre-repo/software-factory.git
cd software-factory

# Construire et lancer les services
docker-compose up --build

Méthode 2 : Installation locale

# Cloner le projet
git clone https://github.com/votre-repo/software-factory.git
cd software-factory

# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate  # Linux/Mac
# ou
.\venv\Scripts\activate   # Windows

# Installer les dépendances Python
pip install -r requirements.txt

# Installer les dépendances Node.js pour Playwright
npm install
npx playwright install --with-deps

Démarrage rapide

Lancer l'API FastAPI

# Mode développement
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# Mode production
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4

L'API sera accessible sur http://localhost:8000

La documentation Swagger est disponible sur http://localhost:8000/docs

Lancer les tests E2E avec Playwright

# Exécuter tous les tests E2E
pytest tests/e2e/ -v

# Ou avec Playwright directement
npx playwright test

# Exécuter un test spécifique
npx playwright test tests/e2e/test_app.py --headed

Structure du projet

software-factory/
├── app/
│   ├── __init__.py
│   ├── main.py              # Point d'entrée FastAPI
│   ├── api/                 # Routes et contrôleurs
│   │   ├── __init__.py
│   │   ├── agents.py        # Endpoints des agents
│   │   └── projects.py      # Endpoints projets
│   ├── agents/              # Implémentation des agents IA
│   │   ├── __init__.py
│   │   ├── base_agent.py     # Classe de base
│   │   ├── persona_agent.py  # Agent persona
│   │   ├── requirements_agent.py
│   │   ├── design_agent.py
│   │   ├── development_agent.py
│   │   ├── testing_agent.py
│   │   └── improvement_agent.py
│   ├── models/              # Modèles de données
│   │   ├── __init__.py
│   │   └── schemas.py
│   └── services/            # Services métier
│       ├── __init__.py
│       └── orchestrator.py   # Orchestrateur principal
├── tests/
│   ├── __init__.py
│   ├── e2e/                 # Tests E2E Playwright
│   │   ├── __init__.py
│   │   ├── conftest.py      # Configuration pytest
│   │   ├── test_app.py      # Tests principaux
│   │   └── pages/           # Page Objects
│   │       ├── __init__.py
│   │       └── app_page.py
│   └── unit/                # Tests unitaires
├── docker-compose.yml       # Configuration Docker
├── Dockerfile               # Image Docker
├── requirements.txt         # Dépendances Python
├── package.json             # Dépendances Node.js
├── pytest.ini               # Configuration pytest
├── playwright.config.ts     # Configuration Playwright
└── README.md                # Ce fichier

Technologies utilisées

Technologie Version Usage
Python 3.10+ Langage principal
FastAPI 0.104+ Framework API REST
Uvicorn Latest Serveur ASGI
Pydantic 2.x Validation des données
Playwright Latest Tests E2E automatisés
pytest 8.x Framework de test
Docker 24+ Conteneurisation
Node.js 18+ Runtime pour Playwright

Phases du cycle de vie

┌─────────────────────────────────────────────────────────────────────┐
│                    CYCLE DE VIE DU PRODUIT                          │
├─────────────┬─────────────┬─────────────┬─────────────┬────────────┤
│  PERSONA    │ REQUIREMENTS │   DESIGN    │ DEVELOPMENT │  TESTING   │
│  AGENT      │    AGENT     │   AGENT     │    AGENT    │   AGENT    │
├─────────────┴─────────────┴─────────────┴─────────────┴────────────┤
│                        IMPROVEMENT AGENT                            │
│                    (Amélioration continue)                          │
└─────────────────────────────────────────────────────────────────────┘
  1. Persona Agent — Définition des personas utilisateurs
  2. Requirements Agent — Spécification des exigences
  3. Design Agent — Conception de l'architecture
  4. Development Agent — Génération du code
  5. Testing Agent — Tests automatisés (Playwright E2E)
  6. Improvement Agent — Analyse et optimisation continues

Statut actuel

Phase Statut Description
Persona Agent ✅ Terminé Génération de personas utilisateur
Requirements Agent ✅ Terminé Extraction des exigences
Design Agent ✅ Terminé Conception architecturale
Development Agent ✅ Terminé Génération de code
Testing Agent ✅ Terminé Tests automatisés
Playwright E2E Execution ✅ Terminé Tests E2E fonctionnels
Improvement Agent 🔄 En cours Optimisation continue
Orchestrateur ✅ Terminé Coordination multi-agents

Couverture de tests

  • Tests E2E (Playwright) : ✅ Opérationnels
  • Tests unitaires : ✅ Opérationnels
  • Couverture API : ✅ Endpoints principaux testés

Contribuer

  1. Forkez le projet
  2. Créez une branche feature (git checkout -b feature/nouvelle-fonctionnalite)
  3. Committez vos changements (git commit -am 'Ajout nouvelle fonctionnalité')
  4. Pushsez sur la branche (git push origin feature/nouvelle-fonctionnalite)
  5. Ouvrez une Pull Request

Licence

Ce projet est sous licence AGPL v3 — voir le fichier LICENSE pour plus de détails.


Développé avec 🤖 par une équipe d'agents IA autonomes

About

Multi-Agent Software Factory — Autonomous AI agents orchestrating the full product lifecycle with SAFe, TDD, and auto-heal capabilities

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors