Solution cloud pour la gestion de fichiers, abonnements et facturation.
---- Présentation
- Architecture générale
- Structure du projet
- Emplacements pour images
- Installation
- Exécution
VitruveCloud (VCloud) est une solution cloud de type "Google Drive" destinée à stocker et partager des fichiers utilisateurs, gérer des abonnements, générer des factures et conserver des logs d'activité. Le frontend est développé en React et le backend en Node.js avec Express. La base de données et les modèles sont organisés dans backend/database/models.
Ce projet a été réalisé comme projet de fin d'année 2024 pour le Bachelor Développeur FullStack & DevOps. L'objectif est de démontrer la maîtrise des compétences suivantes : conception d'API REST sécurisées, gestion de fichiers et stockage cloud, intégration frontend React, gestion d'abonnements et pipelines de déploiement (CI/CD / Docker / orchestration possible).
Le projet est composé de deux parties principales :
backend/: serveur Express, routes, contrôleurs, modèles et middleware.front/: application React (Vite ou Create React App selon configuration), composants et pages.
flowchart LR
subgraph Client
A[React App] -->|API calls| B[Backend API]
end
subgraph Server
B --> C[Controllers]
C --> D[Models]
D --> E[(Database)]
end
B --> F[Middleware Auth]
C --> G[Storage Files]
C --> H[Mail / Notifications]
graph TD
subgraph Routes
U["/api/users"] --> UC[controllerUser]
Cc["/api/companies"] --> CCo[controllerCompany]
S["/api/subscriptions"] --> SC[controllerSubscription]
F["/api/files"] --> FC[controllerFile]
I["/api/invoices"] --> IC[controllerInvoice]
end
Arborescence principale (extraits) :
-
backend/
- server.js # point d'entrée Express
- package.json
- controllers/ # logique métier par entité
- routes/ # définition des routes API
- database/ # connexion et modèles
- middleware/ # authentification et validation
-
front/
- package.json
- src/
- Components/ # composants réutilisables
- Pages/ # pages de l'application
Remarque : ces instructions supposent que vous êtes sur Windows avec PowerShell (versions récentes de Node.js recommandées).
- Node.js (>= 14) et npm ou yarn
- Git
- Ouvrez un terminal à la racine du projet et installez les dépendances du backend :
cd backend
npm install- Configuration :
- Vérifiez
backend/config/config.jsonpour les variables d'environnement locales (port, DB, etc.).
- Démarrer le serveur :
cd backend
npm start- Ouvrez un second terminal et installez les dépendances du frontend :
cd front
npm i- Démarrer l'application React :
cd front
npm start- L'application sera typiquement disponible sur
http://localhost:3000(ou le port configuré).
- Backend :
http://localhost:PORT/api/...(voirbackend/server.jspour le port par défaut). - Frontend :
http://localhost:3000.
- Utilisez des variables d'environnement pour les secrets (JWT_SECRET, DB_URL, SMTP credentials). Ne commitez jamais de secrets.
- Vous pouvez utiliser un fichier
.envà la racine debackend/etfront/le charger viadotenv.
Voici les variables couramment utilisées côté backend et leur rôle :
XXX: XXXX (ex: XXXX)
XXX
Le frontend React peut utiliser des variables d'environnement préfixées (ex: REACT_APP_ pour Create React App) :
XXX: XXXX (ex: XXXX)
XXX


