Plateforme de certification et traçabilité des diplômes basée sur la blockchain (Togo)
# CertifTOGO
Plateforme de **certification et de traçabilité des diplômes sur blockchain**,
inspirée du modèle administratif togolais. Les établissements transmettent les
dossiers, le ministère certifie les diplômes (signature + blockchain), et le
public vérifie leur authenticité par hash ou QR code.
> Projet de stage — Licence Génie Logiciel (GLSI). Développement **par phases**.
> État actuel : **Phase 1** (structure + authentification OTP).
---
## Prérequis
- **Node.js** ≥ 18 (testé avec Node 22)
- **PostgreSQL** ≥ 13 (testé avec PostgreSQL 17) — *ou* **Docker** (voir plus bas)
---
## Structure du projet
```
certiftogo/
├── backend/ # API REST (Express + PostgreSQL)
├── frontend-back-office/ # App React privée (établissement, ministère, candidat, admin)
├── frontend-public/ # App React publique de vérification (Phase 5)
├── blockchain/ # Smart contract Solidity (Phase 2)
└── docker-compose.yml # PostgreSQL local (optionnel)
```
---
## Installation & lancement
### 1. Base de données
**Option A — Docker (le plus simple)**
À la racine du projet :
```bash
cp .env.example .env # (facultatif) ajuster les identifiants
docker compose up -d
```
Le schéma et les données de test sont chargés automatiquement au premier démarrage.
**Option B — PostgreSQL installé localement**
Créez la base puis chargez schéma + données via les scripts npm du backend :
```bash
# 1. Créer un utilisateur et une base (exemple)
# (adaptez le mot de passe puis reportez-le dans backend/.env)
createdb certiftogo
# 2. Charger le schéma et le seed
cd backend
cp .env.example .env # renseignez vos identifiants PostgreSQL
npm install
npm run db:reset # joue la migration puis le seed
```
### 2. Backend (API)
```bash
cd backend
npm install # si pas déjà fait
cp .env.example .env # à faire une fois, puis renseigner les valeurs
npm run dev # →
localhost
```
Vérifie …