# 🏗️ Architecture du projet P'tits Pas

## 📁 Structure du projet

Ce projet est organisé en **3 dépôts Git distincts** :

- **`ptitspas-frontend`** : Application Flutter (interface utilisateur)
- **`ptitspas-backend`** : API NestJS (serveur backend)  
- **`ptitspas-database`** : Configuration PostgreSQL et migrations

## 🌍 Deux environnements supportés

### 🚀 **Environnement de production (serveur)**
- **Localisation** : `/home/ynov/project/` sur le serveur
- **Configuration** : `docker-compose.yml` + `.env`
- **Domaine** : `https://ynov.ptits-pas.fr`
- **Reverse proxy** : Traefik avec SSL automatique
- **Gestion** : Déploiement automatique via webhooks Gitea

### 💻 **Environnement de développement (local)**
- **Configuration** : `docker-compose.dev.yml` + `.env.example` dans chaque dépôt
- **Accès** : Ports locaux (3000, 8000, 8080, 5432)
- **Hot reload** : Modifications de code prises en compte instantanément
- **Base locale** : PostgreSQL indépendante avec PgAdmin

## 🏃‍♂️ Guide de démarrage développeur

### 1. **Backend** (à démarrer en premier)
```bash
git clone <url-backend>
cd ptitspas-backend
cp .env.example .env
docker compose -f docker-compose.dev.yml up -d
```
**Accès** : http://localhost:3000/api

### 2. **Frontend**
```bash
git clone <url-frontend>  
cd ptitspas-frontend
cp .env.example .env
docker compose -f docker-compose.dev.yml up -d
```
**Accès** : http://localhost:8000

### 3. **PgAdmin** (inclus avec le backend)
**Accès** : http://localhost:8080
- Email : admin@localhost
- Mot de passe : admin123

## 🔄 Workflow de développement

1. **Développer localement** avec les `docker-compose.dev.yml`
2. **Tester les modifications** sur http://localhost:8000
3. **Commiter et pousser** dans les dépôts respectifs
4. **Déploiement automatique** sur le serveur via webhooks

## 🗂️ Fichiers de configuration

| Fichier | Usage | Localisation |
|---------|-------|--------------|
| `docker-compose.yml` | Production (serveur) | `/home/ynov/project/` |
| `docker-compose.dev.yml` | Développement (local) | Chaque dépôt |
| `.env` | Variables production | Serveur uniquement |
| `.env.example` | Template développement | Chaque dépôt |

## 🔒 Sécurité

- ✅ Fichiers `.env` **non versionnés** (ajoutés au `.gitignore`)
- ✅ Variables sensibles **externalisées**
- ✅ Configurations **séparées** dev/prod
- ✅ SSL automatique en production via Let's Encrypt
