Ce projet est une plateforme pour le site d'intégration de l'Université de Technologie de Troyes. Il utilise une architecture conteneurisée via Docker pour gérer le frontend, le backend et la base de données PostgreSQL.
-
Frontend :
- Vite.js
- React
- Nginx (pour servir le build statique)
- Docker
-
Backend :
- Node.js
- Express.js
- Prisma
- PostgreSQL client
- Docker
-
Base de données :
- PostgreSQL
-
Outils DevOps :
- Docker
- Docker Compose
git clone https://github.com/ungdev/Integration.git
cd IntegrationAssurez-vous d'avoir installé :
Vérifiez avec :
docker --version
docker-compose --versionESLint & Prettier sont utilisés pour maintenanir une cohérence et propreté de syntaxe dans le code de ce projet ainsi que la lisibilité.
Il convient donc d'installation les deux extensions sur votre éditeur de code.
Vérification de syntaxe via la commande
pnpm lint
La syntaxe doit être controllée avant chaque commit.
Dans le dossier frontend
cp .env.example .env
Renseigner les différents champs utiles.
Dans le dossier backend
cp .env.example .env
Renseigner les différents champs utiles.
A la racine du projet
docker compose up db
Passage par exemple par systemctl
sudo systemctl start postgresql
Dans le dossier frontend
Installation des dépendances
pnpm i
Pour lancer le serveur
pnpm run dev
Dans le dossier backend
Installation des dépendances & Migration DB
pnpm i
pnpm migrate
Pour lancer le serveur
pnpm run dev
- Frontend : http://localhost:4000
- Backend : http://localhost:4001
- Base de données PostgreSQL :
localhost:5432(user:admin, password:password)
Exécutez la commande suivante à la racine du projet :
docker-compose up --buildCette commande :
- Lance PostgreSQL
- Démarre le backend avec migration automatique via Prisma
- Compile et sert le frontend
.
├── backend/
│ ├── Dockerfile
│ ├── docker-entrypoint.sh
│ └── ...
├── frontend/
│ ├── Dockerfile
│ └── ...
├── docker-compose.yml
└── README.md
Ce guide permet de configurer le site integration.utt.fr en local avec Nginx, en HTTPS, pour simuler l'environnement de production.
sudo nano /etc/hostsAjouter :
127.0.0.1 integration.utt.fr
Dans le dossier du projet :
mkcert integration.utt.frCela crée deux fichiers :
integration.utt.fr.pemintegration.utt.fr-key.pem
Créer un fichier dans /etc/nginx/sites-available/integration.utt.fr avec :
server {
listen 443 ssl;
server_name integration.utt.fr;
ssl_certificate /chemin/vers/integration.utt.fr.pem;
ssl_certificate_key /chemin/vers/integration.utt.fr-key.pem;
location / {
proxy_pass http://localhost:4000;
}
location /api/ {
proxy_pass http://localhost:4001;
}
}Puis l'activer :
sudo ln -s /etc/nginx/sites-available/integration.utt.fr /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxLancer l'API puis lancer le Frontend
Le projet de dev est maintenant accessible sur https://integration.utt.fr, en local.
sudo nano /etc/hostsSupprimer la ligne :
127.0.0.1 integration.utt.fr
sudo rm /etc/nginx/sites-enabled/integration.utt.fr
sudo nginx -t
sudo systemctl reload nginxLa site de production est maintenant accessible sur https://integration.utt.fr, en ligne.
Projet destiné à des fins d'utilisation pour l'intégration des nouveaux étudiants à l'Université de Technologie de Troyes.