Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Plateforme pour la menuiserie aluminium et les volets roulants à Madagascar. Vision complète : mettre en relation menuisiers vérifiés et clients (profils, avis, devis en ligne, suivi de chantier).
Version actuelle : une place de marché complète en deux espaces.
Le contact (e-mail et téléphone) est obligatoire à l'inscription, pour les deux types de compte.
npm install --legacy-peer-deps # contourne un bug npm avec les peer deps optionnelles
npm run dev # http://localhost:3000 → créez un compte sur /inscription
Node 20+. Aucune installation de base de données : en développement, une base Postgres embarquée (PGlite) est créée dans .data/ au premier lancement.
| Commande | Rôle |
|---|---|
npm test | Tests unitaires du calcul et des accès base (base en mémoire) |
npm run test:e2e:fresh | Tests de bout en bout (API + navigateur Chrome) sur une base jetable et un autre port : recommandé |
npm run test:e2e | Mêmes tests contre le serveur déjà lancé (npm run dev) : ajoute des comptes de test à votre base locale |
npm run lint · npm run build | Qualité et build de production |
npm run demo:photos · npm run demo:assets · npm run seed:demo | Données de démonstration : vraies photos libres (Pexels, Internet requis), logos et portraits (SVG), puis 12 menuisiers, 4 clients, 15 devis à tous les stades et des conversations (mot de passe motdepasse123) |
npm run admin:create | Crée un compte administrateur avec mot de passe généré (voir ci-dessous) |
npx drizzle-kit generate | Génère une migration après une modification de lib/db/schema.ts |
npm run dev # dans un terminal
npm run seed:demo # dans un autre (ADMIN_EMAIL / ADMIN_PASSWORD optionnels : accordent le badge « Vérifié »)
Les photos de réalisations viennent de Pexels (voir public/demo/CREDITS.md) : elles illustrent le type d'ouvrage et non de vrais chantiers ; les logos et portraits sont des illustrations générées (aucune vraie personne). Comptes : [email protected], [email protected], [email protected], [email protected], [email protected], [email protected] (menuisiers) ; [email protected], [email protected], [email protected], [email protected] (clients).
npm run admin:create # [email protected] + mot de passe généré
npm run admin:create -- --email [email protected] --name "Moi" # e-mail et nom choisis
npm run admin:create -- --password "MonMotDePasse" # mot de passe imposé
Le mot de passe généré est affiché une seule fois : notez-le. Relancer la commande avec le même e-mail réinitialise le mot de passe, lève une éventuelle suspension et ferme les sessions ouvertes. L'e-mail du compte est tenu pour vérifié. Les comptes protégés (PROTECTED dans lib/admin.ts) sont refusés. En local, arrêtez npm run dev avant (la base embarquée est prévue pour un seul processus à la fois) ; PGLITE_DIR désigne une autre base locale. En production, définissez DATABASE_URL pour viser la bonne base.
L'administrateur se connecte comme tout le monde et arrive sur /admin : vue d'ensemble (comptes, connectés, inscriptions, connexions, devis, chantiers terminés), gestion des comptes (/admin/comptes, avec la configuration et les devis de chaque compte), liste de tous les devis (/admin/devis, filtrable par menuisier et par client) avec, pour chacun, la feuille, le PDF, les remarques par ouvrage et la discussion (lecture seule) messagerie directe avec n'importe quel client ou menuisier (sous le profil AluMg), nombre de téléchargements de PDF de chaque devis, réseaux sociaux affichés dans le pied de page (/admin/reseaux) et journal des actions (/admin/journal). Voir docs/architecture.md, « Administration ».
| Zone | Écran | Rôle |
|---|---|---|
| Public | / | Accueil : présentation, menuisiers les mieux notés, comment ça marche |
| Public | /menuisiers, /menuisiers/[slug] | Annuaire filtrable, profil (à propos, réalisations, avis) ; la demande de devis exige un compte client |
| Public | /connexion, /inscription | Accès ; l'inscription choisit client ou menuisier |
| Menuisier | /tableau-de-bord | Indicateurs, demandes à traiter, chantiers en cours, montants par mois |
| Menuisier | /devis, /devis/[id] | Liste filtrable ; éditeur (client, ouvrages, remise, envoi au client, historique) |
| Menuisier | /devis/[id]/profils, /devis/[id]/profils/[ligne] | Besoin en profilés : achats, coût, marge, ouvrages partageant un profilé, vue 3D |
| Menuisier | /chantiers, /clients | Avancement des chantiers en %, liste des clients |
| Menuisier | /realisations, /profil-public | Portfolio photos, profil public et publication |
| Menuisier | /reglages, /reglages/profils | Entête, signature, tarifs, majorations, longueur de barre ; marché des profilés (prix et longueurs) |
| Client | /espace-client, /espace-client/nouvelle, /espace-client/devis/[id] | Mes demandes, nouvelle demande, suivi d'un devis |
| Commun | /compte | Nom, téléphone, mot de passe |
| Admin | /admin, /admin/comptes, /admin/comptes/[id], /admin/devis, /admin/devis/[id], /admin/journal | Statistiques de la plateforme, comptes (recherche, création, réinitialisation, suspension, rôle, badge, suppression, configuration et devis du compte), devis de toute la plateforme (lecture seule), journal |
Transversal : thème clair/sombre (barre latérale identique), 3 langues (français, English, Malagasy), mobile-first, accessible au clavier et aux lecteurs d'écran.
lib/model.ts et restent à valider avec des menuisiers malgaches.