Monorepo du projet Matos service B2B de location de matériel de BTP.
  • Java 78.6%
  • PLpgSQL 17.7%
  • CSS 1.3%
  • TypeScript 1%
  • Dockerfile 0.7%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Gatien 5142b512c9 feat: routes utilisateur sur public_id et seed admin en profil dev
API

- GET /api/users/{public_id} et DELETE /api/users/{id} prennent désormais
  l'UUID public au lieu de l'id bigint interne. UserResponse renvoyait déjà
  publicId : les clients n'avaient aucun moyen d'appeler ces deux routes.
- UserService : getUserByPublicId / getUserEntityByPublicId, deleteUser(UUID),
  et findByPublicId côté repository. L'id interne reste utilisé pour les
  requêtes de cascade (annonces, messages, avis), qui portent sur des FK.
- AuthService : login et register construisent la réponse depuis l'entité
  déjà en mémoire (userService.toResponse) au lieu de la relire en base.

Modèle

- User.isVerified initialisé à false : la colonne est NOT NULL, un insert
  sans passer par register partait avec un null et échouait.
- Anonymisation : password_hash passe à  plutôt qu'une
  chaîne vide, pour qu'aucun encodeur ne puisse le considérer comme un hash
  valide à vérifier. lastName uniformisé en Deleted.

Seed dev

- DevSeeder (@Profile(dev)) crée les deux comptes ADMIN au démarrage à
  partir de SEED_ADMIN_PASSWORD_GATIEN et SEED_ADMIN_PASSWORD_CORENTIN,
  hachés par le PasswordEncoder de l'application. Idempotent, et ignoré si
  les variables sont absentes.
- L'admin en dur de R__TESTS.sql est supprimé : son hash était versionné et
  le fichier est une migration repeatable, rejouée à chaque démarrage.
- Variables ajoutées à .env.exemple, application-dev.properties et
  docker-compose.dev.yml.

BREAKING CHANGE: GET /api/users/{id} et DELETE /api/users/{id} attendent
l'UUID publicId et non plus l'id numérique.
2026-09-07 17:50:55 +02:00
assets feat: added temp matos logo 2026-08-12 16:13:48 +02:00
backend feat: routes utilisateur sur public_id et seed admin en profil dev 2026-09-07 17:50:55 +02:00
docs feat: statuts en tables de référence, index, FK explicites et couche JPA 2026-08-31 17:44:26 +02:00
infra/java feat: multi-exemplaires, anonymisation RGPD et intégrité du schéma 2026-08-19 22:57:03 +02:00
web feat: initialisation et template du frontend 2026-02-03 17:11:14 +01:00
.env.exemple feat: routes utilisateur sur public_id et seed admin en profil dev 2026-09-07 17:50:55 +02:00
.gitattributes feat: (je respecte les conventions watofok) ajout des .git pour le backend 2026-02-02 15:11:14 +01:00
.gitignore feat: statuts en tables de référence, index, FK explicites et couche JPA 2026-08-31 17:44:26 +02:00
docker-compose.dev.yml feat: routes utilisateur sur public_id et seed admin en profil dev 2026-09-07 17:50:55 +02:00
docker-compose.yml feat: multi-exemplaires, anonymisation RGPD et intégrité du schéma 2026-08-19 22:57:03 +02:00
LICENSE docs and feat: maj docs et ajout backend projet avec intellij et spring boot 2026-02-02 15:56:31 +01:00
README.md fix: java 17 -> java 21 2026-03-07 15:52:30 +01:00
TODO.md fix: figma en maj... 2026-03-04 19:54:29 +01:00

Matos©

Solution web de location de matériel à destination des professionnels du bâtiment.
Matos© vise à simplifier la gestion, la réservation et le suivi du matériel de chantier via une plateforme moderne, sécurisée et évolutive.

🎯 Objectifs du projet

  • Centraliser la gestion du matériel (disponibilité, état, historique)
  • Faciliter la location pour les professionnels du BTP
  • Offrir une expérience fluide côté client et côté gestionnaire
  • Construire une base technique solide et évolutive

🧭 Navigation

📌 Projet

Document Description
Présentation générale Vision, périmètre fonctionnel et objectifs à long terme
Vocabulaire Glossaire métier et termes techniques
Roadmap Fonctionnalités planifiées et priorisation

💻 Développement

Document Description
Conventions de code Règles de nommage, structure, bonnes pratiques
Guide d'installation Prérequis et installation locale

Principes architecturaux :

  • Architecture orientée sur la séparation des responsabilités
  • Respect des principes SOLID, Clean Code et Clean Architecture
  • API documentée et versionnée

🎨 Design

Document Description
Maquettes Figma Wireframes, design system et parcours utilisateurs

Approche design :

  • Mobile-first : conception adaptée aux usages terrain
  • Efficacité : lisibilité et rapidité d'action

🗂️ Structure du dépôt

matos/
├── backend/     # API métier (Java + Spring Boot)
├── web/         # Client web (React + TypeScript)
├── mobile/      # Application mobile (futur)
├── infra/       # Déploiement, CI/CD, Docker
└── docs/        # Documentation technique et projet

🧩 Stack générale

┌──────────────────────────────────────────┐
│ FRONTEND (navigateur)                    │
│ React 18 + Tailwind CSS                  │
│ - Composants réutilisables               │
│ - Gestion état (useState, Context)       │
│ - Pages: Home, Equipment, Rentals        │
└───────────────────────┬──────────────────┘
                        │ HTTP REST API
                        ↓
┌──────────────────────────────────────────┐
│ BACKEND (serveur)                        │
│ Java + Spring Boot                       │
│ - Controllers & Routes API               │
│ - Services (logique métier)              │
│ - Repositories (accès BD)                │
│ - Sécurité & Validations                 │
└───────────────────────┬──────────────────┘
                        │ SQL Queries
                        ↓
┌──────────────────────────────────────────┐
│ BASE DE DONNÉES                          │
│ PostgreSQL 15+                           │
│ - Tables: users, equipment, rentals      │
│ - Contraintes, index, relations          │
│ - Transactions ACID                      │
└──────────────────────────────────────────┘

⚙️ Stack technique

🎨 Frontend

Technologie Version/Détail
Framework React 18+ (TypeScript)
Styling Tailwind CSS
Build Vite
HTTP Client Fetch API / Axios
Qualité ESLint, Prettier

Backend

Technologie Version/Détail
Runtime Java 21+
Framework Spring Boot 3.x
Build Gradle
API REST (GraphQL envisagé Phase 2+)
Sécurité Spring Security, JWT (à finaliser)

🗄️ Base de données

Technologie Version/Détail
SGBD PostgreSQL 15+
ORM JPA/Hibernate
Migrations Flyway
Validation À définir

🚀 Déploiement & DevOps

Technologie Usage
Containerisation Docker
Orchestration locale Docker Compose
CI/CD GitLab CI
Hébergement Homelab → Heroku → OVH (évolutif)

🚀 Stratégie de déploiement

La stratégie de déploiement évoluera progressivement selon le budget et l'infrastructure :

Environnement Solution Objectif
Développement Docker Compose local Développement et tests locaux
Staging Heroku Tests avant mise en production
Production OVH / AWS (à définir) Environnement de production

🔗 Pour aller plus loin

💬 Social

Spring Boot & Java

⚛️ React & Frontend

🐘 PostgreSQL

🧱 Git & DevOps


👥 Équipe

Projet développé par une équipe orientée qualité logicielle, produit et évolutivité.
Les rôles, responsabilités et règles de contribution sont détaillés dans la documentation du projet.

Membre Formation
PENCHAUD Gatien L2 Informatique
GASSIEN Corentin Futur Master IHM/HCI

📄 License

LICENSE