Skip to content

ambitechdynamics-debug/sfa-api

Repository files navigation

STUDIO FLYER AI Backend

Backend de départ pour le SaaS STUDIO FLYER AI / POSTER AI.

Cette première phase met en place une API Express.js modulaire avec TypeScript, Prisma, PostgreSQL, Clerk et Zod. Elle ne contient pas encore d'appel réel à Claude, ChatGPT, Gemini ou Nano Banana.

Fonctionnalités

  • Authentification Clerk : vérification des tokens de session et profil local
  • Gestion utilisateur connecté
  • CRUD projets protégés par propriétaire
  • CRUD des mémoires métier :
    • M_SMS
    • M_QT1
    • M_QT2
    • M_MD
    • M_ID
    • M_BA
    • M_PROMPT1
  • Métadonnées fichiers compatibles stockage cloud futur
  • Base artistique avec lecture publique et mutations admin
  • Validation Zod
  • Erreurs JSON standardisées
  • Seed admin optionnel

Installation

npm install

Copier .env.example vers .env, puis renseigner au minimum :

PORT=5000
DATABASE_URL=postgresql://USER:PASSWORD@localhost:5432/studio_flyer_ai
APP_URL=http://localhost:3000
CLERK_SECRET_KEY=sk_...
CLERK_PUBLISHABLE_KEY=pk_...

Base de données

Générer le client Prisma :

npm run prisma:generate

Créer les tables :

npm run prisma:migrate

Créer ou mettre à jour un administrateur depuis les variables ADMIN_* :

npm run prisma:seed

Lancement

Développement :

npm run dev

Production :

npm run build
npm start

Endpoints

Auth

  • GET /api/auth/me

Users

  • GET /api/users/me
  • PATCH /api/users/me

Projects

  • POST /api/projects
  • GET /api/projects
  • GET /api/projects/:projectId
  • PATCH /api/projects/:projectId
  • DELETE /api/projects/:projectId

Memory

  • POST /api/projects/:projectId/memory
  • GET /api/projects/:projectId/memory
  • GET /api/projects/:projectId/memory/:type
  • PATCH /api/projects/:projectId/memory/:type
  • DELETE /api/projects/:projectId/memory/:type

Files

  • POST /api/projects/:projectId/files
  • GET /api/projects/:projectId/files
  • DELETE /api/files/:fileId

Le module fichiers stocke uniquement les métadonnées dans cette phase :

{
  "fileUrl": "https://cdn.example.com/logo.png",
  "fileType": "image/png",
  "originalName": "logo.png",
  "usageType": "LOGO"
}

Artistic Base

  • POST /api/admin/artistic-resources
  • GET /api/artistic-resources
  • GET /api/artistic-resources/search
  • GET /api/artistic-resources/:resourceId
  • PATCH /api/admin/artistic-resources/:resourceId
  • DELETE /api/admin/artistic-resources/:resourceId

Format de réponse

Succès :

{
  "success": true,
  "message": "",
  "data": {}
}

Erreur :

{
  "success": false,
  "message": "",
  "errors": []
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors