diff --git a/pages/codev/fiche.vue b/pages/codev/fiche.vue new file mode 100644 index 0000000..58367dd --- /dev/null +++ b/pages/codev/fiche.vue @@ -0,0 +1,367 @@ + + + + + + + Ma fiche + 3 lignes pour te présenter. Le reste se passe entre nous. + + + + + + + + + Prénom * + + + + + + + + + Mon besoin actuel * + + ? + + + Aide + Un besoin, c'est ce qui te manque pour avancer. Ca peut etre concret (un coup de main sur un dossier) ou plus large (clarifier ou tu vas). Pas grave si c'est flou - la rencontre IRL aide a le preciser. + + + + {{ form.besoin.length }}/300 + + + + + + + + Ce que j'offre a la communaute * + + ? + + + Aide + Une offre, c'est une competence, une experience ou une qualite que tu peux partager. Ce que les autres viennent chercher chez toi naturellement. + + + + {{ form.offre.length }}/300 + + + + + + + Mots-clés + (optionnel, 3 max, séparés par des virgules) + + + + + + + {{ error }} + + + + + {{ loading ? 'Envoi en cours...' : 'Ajouter ma fiche' }} + + + + + + + + + + + diff --git a/pages/codev/index.vue b/pages/codev/index.vue new file mode 100644 index 0000000..cb8e4b3 --- /dev/null +++ b/pages/codev/index.vue @@ -0,0 +1,217 @@ + + + + + + Co-développement + Entraide entre pairs + Cet espace est un cercle. Pour entrer, il y a un mot. + + + + + + + + + + {{ error }} + + + + {{ loading ? 'Vérification...' : 'Entrer' }} + + + + + + + + + + + + + diff --git a/server/middleware/codev-auth.ts b/server/middleware/codev-auth.ts new file mode 100644 index 0000000..dfab87b --- /dev/null +++ b/server/middleware/codev-auth.ts @@ -0,0 +1,20 @@ +// Middleware server Nuxt — protection des routes /codev/fiche et /codev/carto +// Laisse passer /codev (lock screen), /codev/demo et toutes les routes /api/* + +export default defineEventHandler((event) => { + const url = getRequestURL(event) + const path = url.pathname + + // Seulement les routes sous /codev/ + if (!path.startsWith('/codev/')) return + + // Routes publiques : /codev/demo (et sous-routes éventuelles) + if (path === '/codev/demo' || path.startsWith('/codev/demo/')) return + + // Vérification cookie + const session = getCookie(event, 'codev_session') + if (session === 'ok') return + + // Non authentifié -> redirect vers /codev (lock screen) + return sendRedirect(event, '/codev', 302) +})
3 lignes pour te présenter. Le reste se passe entre nous.
Un besoin, c'est ce qui te manque pour avancer. Ca peut etre concret (un coup de main sur un dossier) ou plus large (clarifier ou tu vas). Pas grave si c'est flou - la rencontre IRL aide a le preciser.
Une offre, c'est une competence, une experience ou une qualite que tu peux partager. Ce que les autres viennent chercher chez toi naturellement.
Entraide entre pairs
Cet espace est un cercle. Pour entrer, il y a un mot.