Skip to content

Repository files navigation

# AlertProche API — Backend NestJS API REST pour la plateforme citoyenne de protection des mineurs. ## Stack technique - **Framework** : NestJS 11 - **Base de données** : MongoDB + Mongoose - **Authentification** : JWT (passport-jwt) - **Validation** : class-validator + class-transformer - **Upload images** : Multer (stockage local `uploads/images/`) - **Sécurité** : bcryptjs, CORS, validation des DTOs ## Prérequis - Node.js >= 18 - MongoDB (local ou Atlas) ## Installation ```bash npm install ``` ## Configuration Copier `.env.example` en `.env` et renseigner les variables : ```bash cp .env.example .env ``` Variables importantes : - `MONGODB_URI` : URI de connexion MongoDB - `JWT_SECRET` : Clé secrète JWT (changer en production) - `FRONTEND_URL` : URL du frontend Angular (CORS) ## Démarrage ```bash # Développement (hot reload) npm run start:dev # Production npm run build npm run start:prod ``` ## Seed (données de démo) ```bash npx ts-node src/seed/seed.ts ``` Comptes créés : | Rôle | Email | Mot de passe | |------|-------|-------------| | Admin | admin@alertproche.cm | Admin2026! | | Modérateur | moderateur@alertproche.cm | Modo2026! | | Standard | marie@example.cm | User2026! | ## Endpoints API ### Auth | Méthode | Route | Auth | Description | |---------|-------|------|-------------| | POST | `/auth/register` | Non | Inscription | | POST | `/auth/login` | Non | Connexion | | GET | `/auth/profile` | JWT | Profil connecté | | PATCH | `/auth/profile/pseudo` | JWT | Modifier pseudo | ### Posts | Méthode | Route | Auth | Description | |---------|-------|------|-------------| | GET | `/posts` | Non | Flux (filtres: type, location) | | GET | `/posts/:id` | Non | Détail d'un post | | GET | `/posts/my-posts` | JWT | Mes publications | | GET | `/posts/reported` | Modérateur/Admin | Posts signalés | | POST | `/posts` | JWT | Créer (multipart/form-data) | | PATCH | `/posts/:id` | JWT | Modifier | | PATCH | `/posts/:id/toggle-active` | Modérateur/Admin | Désactiver/Réactiver | | POST | `/posts/:id/report` | JWT | Signaler | | DELETE | `/posts/:id/report` | Modérateur/Admin | Classer sans suite | | DELETE | `/posts/:id` | JWT | Supprimer | ### Comments | Méthode | Route | Auth | Description | |---------|-------|------|-------------| | GET | `/comments/post/:postId` | Non | Commentaires d'un post | | GET | `/comments/my-comments` | JWT | Mes commentaires | | POST | `/comments/post/:postId` | JWT | Créer un commentaire | | DELETE | `/comments/:id` | JWT | Supprimer | ## Upload d'images Les images sont stockées dans `uploads/images/` et servies via `/uploads/images/nom-fichier.jpg`. Contraintes : - Formats acceptés : JPEG, JPG, PNG - Taille max : 5 Mo ## Modération automatique Chaque création de post ou commentaire passe par le `ModerationService` : 1. **Filtre lexical** : dictionnaire de termes interdits 2. **Anti-doxxing** : regex numéros camerounais, CNI, passeports En cas de violation → HTTP 422 avec message explicatif. # AlertProche-Api

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages