Aller au contenu
HL
DisponibleEN
Projet / saasen production

Cluster Profile Card Platform

Application de profils et de journal sécurisée par Cognito sur AWS Fargate, avec ETL d'administration et une API à clés

Une application web de cartes de profil et de journal pour Cluster, développée dans un dépôt partagé avec le développeur du client. Le client était parti d'un front end statique basé sur Amplify ; j'ai corrigé le build et migré le backend vers Next.js sur ECS Fargate derrière un ALB et CloudFront, avec authentification Cognito, stockage des photos sur S3 et MongoDB. J'ai ensuite ajouté un espace d'administration avec un pipeline ETL par étapes, une API de données par clés d'API avec limitation de débit, et une application mobile Ionic/Capacitor.

Points forts

  1. 01Production sur AWS : Docker sur ECS Fargate derrière un ALB, une porte d'entrée TLS CloudFront sur un domaine personnalisé, et des templates CloudFormation avec des droits IAM restreints.
  2. 02Chaque push sur main déploie sur Fargate via GitHub OIDC, sans clés à longue durée de vie.
  3. 03Profils liés au subject du token Cognito, photos S3 via des URL présignées, et redimensionnement des images côté navigateur pour corriger les uploads trop volumineux.
  4. 04Espace d'administration avec un pipeline ETL par étapes, des conditions et politiques modifiables, et des clés d'API avec limites de débit et expiration par clé derrière des endpoints /api/v1 documentés.
  5. 05Échange de cartes à proximité : l'expéditeur choisit les champs à partager et le reste n'est envoyé qu'après acceptation du destinataire, la détection se faisant par GPS (à moins de 100 m) et par un petit plugin Capacitor que j'ai écrit pour iOS et Android, qui émet une balise Bluetooth LE aléatoire à chaque visite, si bien que la position de personne n'est transmise aux autres utilisateurs.
  6. 06Application Ionic Vue + Capacitor pour iOS/Android sur la même API ; 41 des 90 commits du projet sont de moi (août–sept. 2026).

Stack

Cluster Profile Card Platform · captures d'écran

Page de connexion 'profile.' en thème sombre avec des champs email et mot de passe (le mot de passe a un bouton Show), une case 'Keep me signed in' décochée accompagnée d'une note sur les ordinateurs partagés, des boutons Sign in et Create an account, un lien Forgot your password, et des liens vers la Privacy Policy, les Terms of Service, les Payments Terms of Service et la Nondiscrimination Policy
1 / 1L'écran de connexion en ligne sur clustercorp.org, adossé à Amazon Cognito. 'Keep me signed in' est désactivé par défaut : les tokens restent dans sessionStorage et disparaissent à la fermeture de l'onglet. Cocher la case les place dans localStorage, et la session survit alors à un redémarrage.