232 lines
3.7 KiB
Markdown
232 lines
3.7 KiB
Markdown
|
|
# AGENTS.md — Projet Bourse
|
|||
|
|
|
|||
|
|
## Description du projet
|
|||
|
|
|
|||
|
|
Application de gestion boursière permettant :
|
|||
|
|
|
|||
|
|
* le suivi des actions et titres financiers ;
|
|||
|
|
* la gestion des ordres d'achat et de vente ;
|
|||
|
|
* l'importation de données financières ;
|
|||
|
|
* la consultation via une interface web et des API.
|
|||
|
|
|
|||
|
|
Le projet doit rester maintenable, sécurisé et compatible avec l'environnement Docker existant.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Architecture technique
|
|||
|
|
|
|||
|
|
## Environnement
|
|||
|
|
|
|||
|
|
Système de développement :
|
|||
|
|
|
|||
|
|
* Ubuntu Linux
|
|||
|
|
* Python 3.x
|
|||
|
|
* environnement virtuel `.venv`
|
|||
|
|
* Docker / Docker Compose
|
|||
|
|
|
|||
|
|
## Technologies principales
|
|||
|
|
|
|||
|
|
Backend :
|
|||
|
|
|
|||
|
|
* Python
|
|||
|
|
* Flask
|
|||
|
|
* API REST
|
|||
|
|
|
|||
|
|
Base de données :
|
|||
|
|
|
|||
|
|
* MySQL 8
|
|||
|
|
* phpMyAdmin pour administration
|
|||
|
|
|
|||
|
|
Frontend :
|
|||
|
|
|
|||
|
|
* HTML
|
|||
|
|
* CSS
|
|||
|
|
* JavaScript
|
|||
|
|
* Tailwind
|
|||
|
|
|
|||
|
|
Déploiement :
|
|||
|
|
|
|||
|
|
* Docker
|
|||
|
|
* conteneurs séparés pour application et base de données
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Règles générales de développement
|
|||
|
|
|
|||
|
|
## Avant toute modification
|
|||
|
|
|
|||
|
|
Toujours :
|
|||
|
|
|
|||
|
|
1. analyser le code existant ;
|
|||
|
|
2. expliquer la cause du problème ;
|
|||
|
|
3. proposer une modification ;
|
|||
|
|
4. attendre validation avant les changements importants.
|
|||
|
|
|
|||
|
|
Ne jamais réécrire une partie complète du projet sans justification.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Python
|
|||
|
|
|
|||
|
|
Respecter :
|
|||
|
|
|
|||
|
|
* PEP8 ;
|
|||
|
|
* code lisible et commenté en Français ;
|
|||
|
|
* fonctions courtes ;
|
|||
|
|
* gestion correcte des exceptions.
|
|||
|
|
|
|||
|
|
Éviter :
|
|||
|
|
|
|||
|
|
* duplication de code ;
|
|||
|
|
* variables globales inutiles ;
|
|||
|
|
* modifications qui cassent l'existant.
|
|||
|
|
|
|||
|
|
Toujours utiliser l'environnement virtuel :
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
.venv
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Flask
|
|||
|
|
|
|||
|
|
Respecter l'organisation actuelle du projet.
|
|||
|
|
|
|||
|
|
Avant modification :
|
|||
|
|
|
|||
|
|
* identifier les routes existantes ;
|
|||
|
|
* vérifier les dépendances ;
|
|||
|
|
* vérifier les appels frontend/API.
|
|||
|
|
|
|||
|
|
Les nouvelles routes doivent :
|
|||
|
|
|
|||
|
|
* avoir une validation des entrées ;
|
|||
|
|
* retourner des erreurs explicites ;
|
|||
|
|
* utiliser les codes HTTP appropriés.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Base de données MySQL
|
|||
|
|
|
|||
|
|
Règles :
|
|||
|
|
|
|||
|
|
* ne jamais supprimer une table sans confirmation ;
|
|||
|
|
* ne jamais modifier une colonne existante sans vérifier les impacts ;
|
|||
|
|
* toujours proposer une migration SQL.
|
|||
|
|
|
|||
|
|
Respecter les conventions :
|
|||
|
|
|
|||
|
|
* noms de tables en minuscules ;
|
|||
|
|
* clés primaires explicites ;
|
|||
|
|
* index sur les recherches fréquentes.
|
|||
|
|
|
|||
|
|
Avant une requête SQL complexe :
|
|||
|
|
|
|||
|
|
* expliquer son fonctionnement ;
|
|||
|
|
* vérifier les performances.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Données financières
|
|||
|
|
|
|||
|
|
Attention aux données :
|
|||
|
|
|
|||
|
|
* ticker ;
|
|||
|
|
* ISIN ;
|
|||
|
|
* exchange ;
|
|||
|
|
* pays ;
|
|||
|
|
* devise ;
|
|||
|
|
* cours ;
|
|||
|
|
* ordres.
|
|||
|
|
|
|||
|
|
Ne jamais modifier automatiquement une donnée financière sans conserver la valeur précédente si nécessaire.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Docker
|
|||
|
|
|
|||
|
|
Avant modification :
|
|||
|
|
|
|||
|
|
Vérifier :
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
docker ps
|
|||
|
|
docker compose ps
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Ne jamais :
|
|||
|
|
|
|||
|
|
* supprimer un volume Docker ;
|
|||
|
|
* supprimer une base ;
|
|||
|
|
* reconstruire tous les conteneurs sans raison.
|
|||
|
|
|
|||
|
|
Toujours expliquer :
|
|||
|
|
|
|||
|
|
* quel conteneur est modifié ;
|
|||
|
|
* pourquoi ;
|
|||
|
|
* comment revenir en arrière.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Tests
|
|||
|
|
|
|||
|
|
Après chaque modification importante :
|
|||
|
|
|
|||
|
|
Tester :
|
|||
|
|
|
|||
|
|
* démarrage de l'application ;
|
|||
|
|
* connexion MySQL ;
|
|||
|
|
* appels API ;
|
|||
|
|
* affichage frontend.
|
|||
|
|
|
|||
|
|
Vérifier les logs :
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
docker logs <container>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Style de réponse attendu de l'IA
|
|||
|
|
|
|||
|
|
Quand tu analyses ce projet :
|
|||
|
|
|
|||
|
|
1. commence par expliquer ce que tu observes ;
|
|||
|
|
2. indique les fichiers concernés ;
|
|||
|
|
3. propose une solution ;
|
|||
|
|
4. donne les commandes exactes à exécuter.
|
|||
|
|
|
|||
|
|
Ne pas modifier plusieurs fichiers simultanément sans expliquer pourquoi.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Priorités du projet
|
|||
|
|
|
|||
|
|
Ordre des priorités :
|
|||
|
|
|
|||
|
|
1. stabilité ;
|
|||
|
|
2. conservation des données ;
|
|||
|
|
3. sécurité ;
|
|||
|
|
4. performances ;
|
|||
|
|
5. nouvelles fonctionnalités.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Modèle IA utilisé
|
|||
|
|
|
|||
|
|
Le projet utilise OpenCode avec Ollama local :
|
|||
|
|
|
|||
|
|
Modèle principal :
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
qwen2.5-coder:32b
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
L'IA doit privilégier :
|
|||
|
|
|
|||
|
|
* compréhension du code existant ;
|
|||
|
|
* explications techniques ;
|
|||
|
|
* modifications minimales ;
|
|||
|
|
* solutions compatibles avec l'architecture actuelle.
|