88 lines
3.0 KiB
Markdown
88 lines
3.0 KiB
Markdown
# CSV - Plateforme de Vie Locale
|
|
|
|
Application communautaire : articles, événements, petites annonces (listings), demandes d'aide, annuaire d'entreprises locales, avec comptes utilisateurs et panneau d'administration.
|
|
|
|
## Stack technique
|
|
|
|
| Composant | Technologie |
|
|
|-----------|------------|
|
|
| Backend | Node.js + Express (ESM) |
|
|
| Frontend | React 18 + Vite 5 + Tailwind 3 |
|
|
| Base de données | MariaDB (instance distante, LXC 102) |
|
|
| Authentification | JWT (jsonwebtoken) + bcryptjs |
|
|
| Uploads | Multer |
|
|
|
|
## Déploiement
|
|
|
|
```bash
|
|
cd /opt/csv
|
|
docker compose up -d
|
|
```
|
|
|
|
- **Backend** : http://localhost:3002
|
|
- **Frontend** : http://localhost:3003
|
|
|
|
La BDD est auto-créée au démarrage du backend (tables `users`, `articles`, `events`, `listings`, `help_requests`, `businesses`, `categories`).
|
|
|
|
## Structure
|
|
|
|
```
|
|
/opt/csv/
|
|
├── backend/
|
|
│ ├── src/
|
|
│ │ ├── index.js # Point d'entrée Express + auto-create tables
|
|
│ │ ├── config/db.js # Pool MySQL
|
|
│ │ ├── routes/
|
|
│ │ │ ├── auth.js # Inscription, connexion, profil
|
|
│ │ │ ├── articles.js # CRUD articles
|
|
│ │ │ ├── events.js # CRUD événements
|
|
│ │ │ ├── listings.js # Petites annonces
|
|
│ │ │ ├── helpRequests.js # Demandes d'aide
|
|
│ │ │ └── businesses.js # Annuaire entreprises
|
|
│ │ └── uploads/ # Fichiers uploadés
|
|
│ └── package.json
|
|
├── frontend/
|
|
│ ├── src/
|
|
│ │ ├── App.jsx # Routeur React
|
|
│ │ ├── components/ # Composants UI
|
|
│ │ └── pages/ # Pages
|
|
│ └── package.json
|
|
├── docker-compose.yml
|
|
└── nginx.conf
|
|
```
|
|
|
|
## API Routes
|
|
|
|
| Méthode | Route | Description |
|
|
|---------|-------|-------------|
|
|
| POST | `/api/auth/register` | Inscription |
|
|
| POST | `/api/auth/login` | Connexion |
|
|
| GET/POST | `/api/articles` | Liste/Création articles |
|
|
| GET/POST | `/api/events` | Liste/Création événements |
|
|
| GET/POST | `/api/listings` | Liste/Création petites annonces |
|
|
| GET/POST | `/api/help-requests` | Liste/Création demandes d'aide |
|
|
| GET/POST | `/api/businesses` | Liste/Création entreprises |
|
|
|
|
## Variables d'environnement
|
|
|
|
| Variable | Description | Valeur |
|
|
|----------|-------------|--------|
|
|
| `PORT` | Port backend | `3002` |
|
|
| `DB_HOST` | Host MariaDB | `10.10.10.11` |
|
|
| `DB_PORT` | Port MariaDB | `3306` |
|
|
| `DB_USER` | Utilisateur BDD | `csvusr` |
|
|
| `DB_PASSWORD` | Mot de passe BDD | `Fdp1989Dor@` |
|
|
| `DB_NAME` | Nom de la BDD | `csv` |
|
|
| `JWT_SECRET` | Secret JWT | `csv-secret-key-change-in-production` |
|
|
|
|
> **Sécurité** : Le JWT_SECRET est une valeur par défaut. Il doit être changé en production.
|
|
|
|
## Domaine de production
|
|
|
|
- **URL** : https://csv.secourit.fr
|
|
- **LXC** : 106 (IP 10.10.10.23)
|
|
- **Backend** : port 3002
|
|
- **Frontend** : port 3003
|
|
- **SSL** : Let's Encrypt via Nginx Proxy Manager
|
|
- **BDD** : MariaDB sur LXC 102 (10.10.10.11), base `csv`
|