Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Les 12 annexes du Décret 2.23.700 générées automatiquement, chaque dépense avec sa facture, chaque assemblée avec son PV opposable. 30 jours avec vos propres données : si vous ne continuez pas, vous ne payez rien.
翻译准备中
正在加载完整 README。 以下为已保存的摘录。
Site public de SyndicUp, logiciel de gestion de copropriété au Maroc. Projet indépendant : aucune dépendance à l'application produit (CElyousfi/Syndicup), aucun appel API, aucune session. Tout est pré-rendu au build. • 26 pages, chacune en français et en arabe (52 pages + 404). • RTL réel en arabe : propriétés logiques, pas de feuille de style miroir. • Next.js 15 (App Router) · React 19 · TypeScript strict · Tailwind CSS v4.查看完整 README ↗
Site public de SyndicUp, logiciel de gestion de copropriété au Maroc.
Projet indépendant : aucune dépendance à l'application produit (CElyousfi/Syndicup),
aucun appel API, aucune session. Tout est pré-rendu au build.
La mise en page suit l'ossature d'un site SaaS commercial : sections de 112px,
blocs de titre centrés, titres en 700, boutons à rayon court. Les mesures sont
regroupées dans app/globals.css :
| Valeur | |
|---|---|
| Conteneur | 1200px |
| Rythme de section | 112px (.section-pad), 80px resserré |
| Bloc de titre | centré, 64px avant le contenu (.section-head) |
| H1 / H2 / H3 | 64 / 48 / 32px, graisse 700 |
| Corps large | 20px / 1.5 |
| Boutons | rayon 6px, 16/24px, graisse 700 |
| Cartes | rayon 16 à 24px |
Les couleurs, la police et les maquettes produit viennent du produit
lui-même (globals.css de l'application) : greige, encre, vert sauge, Geist,
chiffres tabulaires. L'ossature est commerciale, la matière reste SyndicUp.
L'accueil se déroule en 17 sections : promesse et capture produit, bandeau de preuves, ruban de modules, compte à rebours de clôture, constat du problème, quatre blocs produit alternés, trio « conformité intégrée » sur fond sombre, trois écrans de preuve, onglets par rôle, « pourquoi SyndicUp », preuve sociale volontairement vide, accompagnement, carrousel de portefeuille, écosystème, tarifs, reprise de données, FAQ à onglets — puis le bandeau final commun.
#121212, chevrons et « Up » vert #1E7A50. Fichiers vectoriels dans public/brand/
(syndicup-logo.svg, version inversée lime #DFF28A, symbole seul, icône d'app) — le
wordmark y est en contours (Archivo Black, SIL OFL), aucune police à charger. Composant :
components/brand-logo.tsx. Favicons, icône Apple et image de partage (og-syndicup.jpg,
1200 × 630) sont déclarés dans app/[locale]/layout.tsx.public/video/, affiché sur
l'accueil (section #film, chargement différé) et déclaré en
VideoObject dans le JSON-LD.lib/site.ts (SITE.social), affichées dans le pied de page
et déclarées en sameAs de l'Organization (JSON-LD)./brand/ et /video/ sans préfixe de locale.npm install
npm run dev # http://localhost:3100
| Commande | Effet |
|---|---|
npm run dev | serveur de développement |
npm run build | build de production (pré-rend les 53 pages) |
npm start | sert le build |
npm run typecheck | tsc --noEmit |
npm run lint | ESLint |
app/
globals.css système de design (jetons, primitives, correctifs RTL)
[locale]/ layout racine : <html lang dir>, en-tête, pied, bandeau CTA
page.tsx accueil
[slug]/ 11 pages produit et « pour qui »
ressources/[slug]/ 5 guides et modèles
ressources/calculateur…/ outil interactif
fonctionnalites | tarifs | demo | securite | ressources | a-propos | contact
components/ en-tête, pied, maquettes produit, calculateur, formulaire
content/
types.ts la forme du contenu — les deux langues l'implémentent
fr/ · ar/ les deux dictionnaires
mockups.ts libellés des maquettes produit
lib/
i18n.ts locales, direction, sélection du dictionnaire
site.ts coordonnées et mentions légales (à compléter)
middleware.ts toute URL sous /fr ou /ar
content/fr/ et content/ar/ implémentent tous les deux SiteContent
(content/types.ts). Une clé ajoutée d'un seul côté fait échouer le build.
C'est la seule garantie fiable qu'une traduction ne prend pas de retard.
Les slugs d'URL restent en français dans les deux langues (/ar/comptabilite-annexes) :
ce sont des identifiants de route, pas du contenu. Les traduire créerait deux
arborescences à maintenir et casserait les liens existants.
components/mockups.tsx compose dix écrans du produit (tableau de bord, Annexe 10,
file de validation, téléphone résident, votes, portefeuille cabinet, loge…).
Ils restent nets à toutes les tailles, se traduisent, et suivent la direction du
texte. Les photographies (public/images/) viennent du dépôt produit.
Pour remplacer une maquette par une vraie capture, changez le mockup de la page
concernée dans content/*/details.ts — ou ajoutez un champ image à DetailBlock.
Les correctifs arabes sont regroupés en fin de app/globals.css, volontairement
hors de tout @layer pour l'emporter sur les utilitaires Tailwind :
normal (l'arabe est une écriture liée, le crénage négatif du
français le casse) ;184 320 s'affiche 320 184, l'algorithme
bidirectionnel y voyant deux nombres séparés par une espace.Tout est regroupé dans lib/site.ts et signalé dans le contenu :
| Valeur | Où | Actuellement |
|---|---|---|
| Téléphone WhatsApp | lib/site.ts | +212600000000 |
| RC / ICE | lib/site.ts, footer.legal, apropos.companyLines | 000000 / 000000000000000 |
| URL canonique | NEXT_PUBLIC_SITE_URL ou lib/site.ts | https://syndicup.pro |
| URL du bac à sable | lib/site.ts (appUrl) | https://app.syndicup.pro |
Le contenu porte aussi des réserves juridiques assumées : délais de convocation, quorums, majorités et intitulés officiels des annexes sont présentés comme des paramètres à faire confirmer, pas comme des affirmations. Ne les durcissez pas sans avis d'un avocat spécialisé.
Le formulaire de démo n'envoie rien à un serveur : il compose le message WhatsApp que la page promet. C'est délibéré — un site vitrine n'a pas à stocker de données personnelles.
Build Next.js standard, sans base de données ni variable d'environnement obligatoire
(NEXT_PUBLIC_SITE_URL est recommandée pour les URL canoniques et le sitemap).
Fonctionne tel quel sur Vercel, Render, Netlify ou n'importe quel hôte Node ≥ 20.