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.