Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Dans l'Athènes antique, l'agora était la place publique où les citoyens se réunissaient pour débattre librement : le berceau de la démocratie. Agora est la place publique numérique des organisateurs de manifestations. Un espace commun pour organiser une manifestation : événements et carte, équipe et tâches, matériel, annonces et démarches administratives. Pensé pour une équipe d'organisateurs qui se connaît et travaille à plusieurs.查看完整 README ↗
Dans l'Athènes antique, l'agora était la place publique où les citoyens se réunissaient pour débattre librement : le berceau de la démocratie. Agora est la place publique numérique des organisateurs de manifestations.
Un espace commun pour organiser une manifestation : événements et carte, équipe et tâches, matériel, annonces et démarches administratives. Pensé pour une équipe d'organisateurs qui se connaît et travaille à plusieurs.
/e/:id), activable par les organisateurs : date, lieu, carte,
slogans validés, partage WhatsApp. Le public ne voit jamais l'équipe, les tâches ni les messages.┌──────────────────────────┐ ┌────────────────────────────────────────┐
│ Navigateur (site web) │ │ Supabase │
│ │ HTTPS │ │
│ React + TypeScript │◀──────▶│ Auth comptes, sessions │
│ React Router (pages) │ API │ Postgres tables + règles RLS │
│ Leaflet (carte) │ │ (pas de serveur à écrire ni à gérer) │
│ supabase-js (accès) │ └────────────────────────────────────────┘
└──────────────────────────┘
▲
│ fichiers statiques
│
Hébergement (Vercel, Netlify, ou n'importe quel hébergeur statique)
| Table | Rôle |
|---|---|
profiles | Nom et e-mail de chaque compte (créé automatiquement à l'inscription) |
events | Une manifestation ou un rassemblement |
event_members | Qui fait partie de quel événement, et avec quel rôle |
tasks | Tâches attribuées à un membre |
materials | Matériel, avec la personne qui le garde |
announcements | Annonces internes |
declarations | Démarches administratives (une par événement) |
slogans | Slogans proposés ou validés |
messages | Discussion d'équipe |
invites | Liens d'invitation (code, rôle, expiration, usages) |
Rôles : owner (créateur, peut tout faire, supprime l'événement), organizer (modifie l'événement,
gère l'équipe et les démarches), member (voit tout, crée tâches, matériel et annonces).
src/
main.tsx point d'entrée, providers (routeur, authentification)
App.tsx routes et protection des pages
lib/
supabase.ts client Supabase (lit la configuration)
auth.tsx état de connexion (inscription, connexion, déconnexion)
api.ts toutes les requêtes vers la base, un seul endroit
types.ts types et libellés partagés
declaration.ts calcul de la date limite de déclaration (+ tests)
components/ composants réutilisables (carte, formulaire, bandeau de statut…)
components/event/ onglets d'un événement
pages/ accueil, guide légal, connexion, invitation, liste et détail des événements
supabase/migrations/ schéma SQL et règles d'accès (à exécuter dans Supabase)
supabase/migrations/0001_init.sql, cliquez sur Run, puis
faites de même, dans l'ordre, avec 0002_features.sql, 0003_public_page.sql, 0004_safety_declaration.sql
et 0005_declaration_dossier.sql.
Toutes les tables sont créées dans le schéma manifestation. Si le projet est partagé avec d'autres applications, ajoutez ce schéma dans Settings → API → Exposed schemas.anon public./**
(par exemple https://agora-manif.vercel.app/**) : c'est là que revient le lien de confirmation d'e-mail.
Si le projet Supabase est partagé avec une autre application, ne changez pas le « Site URL ».cp .env.example .env.local
Puis renseignez VITE_SUPABASE_URL et VITE_SUPABASE_ANON_KEY dans .env.local.
npm install
npm run dev
Ouvrez http://localhost:5173. Créez un compte, puis un événement.
| Commande | Effet |
|---|---|
npm run dev | Serveur de développement |
npm run build | Vérifie les types puis génère le site dans dist/ |
npm run preview | Teste le build de production |
npm run typecheck | Vérifie les types TypeScript |
npm test | Lance les tests unitaires |
Le site est statique. Sur Vercel ou Netlify, il suffit de connecter le dépôt GitHub, d'indiquer
npm run build comme commande et dist comme dossier de sortie, puis d'ajouter les deux variables
VITE_SUPABASE_URL et VITE_SUPABASE_ANON_KEY dans les paramètres du projet.
anon est publique par conception. La protection repose sur les règles RLS de la
migration. Ne mettez jamais la clé service_role dans le code ou dans .env.example.