Skip to content

Latest commit

 

History

215 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ManaChain

Back CI Client CI Security Scan

🏆 Compétition Engrainages & Projet Annuel ESGI

Projet développé dans le cadre du Projet Annuel ESGI et de la compétition d'entrepreneuriat Engrainages (engrainages.com), organisée par le réseau GES/Eductive.

📖 Le projet

ManaChain est une plateforme communautaire qui connecte les marques émergentes à leurs supporters. En détenant des tokens de marque, les membres débloquent des privilèges exclusifs, des événements et des expériences uniques avec les marques qu'ils soutiennent.

Fonctionnalités principales

  • Découverte de marques : interface de swipe (façon Tinder) pour découvrir et soutenir des marques émergentes
  • Engagement communautaire : détenir des tokens d'une marque débloque privilèges et accès aux événements
  • Candidature marque : parcours complet permettant à une nouvelle marque de rejoindre la plateforme et construire sa communauté
  • Couche on-chain : tokenisation du soutien (NFT genèse → vault fractionnel → token de soutien → billetterie NFT événementielle)
  • Thème adaptatif : interface claire/sombre

🗂️ Organisation du repo

Dossier Contenu Documentation
back/ API NestJS 11 (hexagonale), TypeORM + PostgreSQL 16 README · Docker · docs/ (dont MONITORING)
client/ Front Next.js 16, React 19, Tailwind 4, Dynamic/Wagmi/Viem, Pinata IPFS README · MONITORING
contracts/ Smart contracts Solidity (Foundry), UUPS upgradeables, ciblant Avalanche README
deploy/ Stack Docker Swarm de prod + test local des images buildées en-têtes des fichiers
infra/ Terraform (Azure) + Ansible : provisionnement, déploiement, backups 3-2-1 README
.github/workflows/ CI back & client (lint, tests, build/push ACR) + déploiement commentaires des workflows

🚀 Démarrage rapide (dev local)

Prérequis : Node.js 22+, pnpm (corepack enable), Docker.

# API — voir back/README.md pour la config (.env)
cd back
pnpm install
docker compose -f docker/docker-compose.dev.yml up -d db
pnpm migration:run
pnpm start:dev            # http://localhost:3001/api — Swagger sur /api/docs

# Front — voir client/README.md pour la config (.env)
cd client
pnpm install
pnpm dev                  # http://localhost:3000

Chaque partie a aussi un mode 100 % Docker (composes dev) — voir les README respectifs. Ajouter --profile monitoring à un up de compose dev lance Prometheus + Grafana en local (opt-in, inchangé sans le flag) — voir back/docs/MONITORING.md ou client/MONITORING.md.

✅ Tests

pnpm --dir back test      # unitaires (Jest, fakes in-memory)
cd back && docker compose -f docker/docker-compose.test.yml up -d --wait \
  && pnpm test:e2e        # e2e contre un Postgres éphémère
cd contracts && forge test # smart contracts (Foundry)

🏭 Production

Cluster Docker Swarm 3 nœuds sur Azure (traefik + Let's Encrypt, back et client répliqués ×2), PostgreSQL managé, registre ACR, backups 3-2-1, provisionné par Terraform + Ansible. Procédure complète de reproduction : infra/README.md.

📝 Licence

Voir le fichier LICENSE.


Made with ❤️ for the Engrainages Competition

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages