Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Gozly est un SaaS modulaire pour PME (Next.js + Supabase + Vercel) : un site vitrine public, un tableau de bord pour le proprio/l'équipe, et une app mobile pour les employés (/moi). Voici comment le faire tourner et le mettre en ligne, étape par étape. 1. Installer les outils de base (une seule fois)README 전문 보기 ↗
Gozly est un SaaS modulaire pour PME (Next.js + Supabase + Vercel) : un
site vitrine public, un tableau de bord pour le proprio/l'équipe, et une
app mobile pour les employés (/moi). Voici comment le faire tourner et
le mettre en ligne, étape par étape.
npm, l'outil qui gère les dépendances du projet.Ouvre un terminal dans le dossier du projet, puis :
npm install
npm run dev
Ouvre ensuite http://localhost:3000 dans ton navigateur - tu devrais voir le site tourner en local.
supabase/schema.sql, copie tout son contenu, colle-le dans
l'éditeur SQL de Supabase, et clique Run. Ça crée les tables de base
(entreprises, employés, planning, etc.)supabase/service_role_grants.sql et exécute-le aussi -
sans ça, certaines routes serveur n'ont pas la permission d'écrire dans
les tables même si elles utilisent la clé service_role..sql dans
le dossier supabase/ (une cinquantaine à ce jour - chat, permissions,
pointage mobile, notifications, etc.). Pour repartir d'une base à jour,
il faut tous les exécuter. Le plus simple : demande à Claude Code
"quels fichiers supabase/*.sql n'ai-je pas encore exécutés ?" avec
l'accès à ton projet Supabase, ou exécute-les un par un en cas de doute
(ils sont tous écrits pour être rejouables sans danger - if not exists
partout).Project URL et la
clé anon public..env.local.example en .env.local
(même dossier) et remplis les valeurs - .env.local.example liste et
explique chaque variable nécessaire (Supabase, Stripe, Wix, Nethris,
notifications push, cron). Toutes ne sont pas indispensables pour un
premier essai en local : au minimum, remplis les deux variables
NEXT_PUBLIC_SUPABASE_* pour que le site démarre.Ton .env.local ne doit jamais être partagé ou mis sur GitHub - il est
déjà exclu automatiquement (voir .gitignore).
Dans le terminal, à la racine du projet :
git init
git add .
git commit -m "Premier envoi du projet Gozly"
Ensuite, crée un nouveau dépôt (repository) vide sur https://github.com/new,
puis suis les instructions que GitHub te donne pour y envoyer ce code
(quelques commandes git remote add et git push qu'ils te fournissent
directement sur la page).
.env.local
(voir .env.local.example pour la liste complète et à quoi sert
chacune). Sans certaines d'entre elles, les fonctionnalités
correspondantes (paiements, Wix, notifications push, paie) restent
simplement désactivées plutôt que de faire planter le site.gozly.vercel.app.Une fois que t'as un nom de domaine à toi, tu pourras le connecter dans
Vercel (Project Settings > Domains) pour remplacer l'adresse .vercel.app.
Aucune clé secrète ne doit jamais se retrouver dans le code ou dans un
composant "use client" - seules trois variables sont volontairement
publiques (NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY,
NEXT_PUBLIC_VAPID_PUBLIC_KEY, protégées respectivement par les règles RLS
de Supabase et par la nature même des clés VAPID). Tout le reste
(STRIPE_SECRET_KEY, SUPABASE_SERVICE_ROLE_KEY, WIX_APP_SECRET, etc.)
n'est lu que dans des fichiers serveur (app/api/**/route.js ou des
fichiers lib/ importés uniquement par ceux-ci), jamais envoyé au
navigateur.
app/
page.js, s-abonner/, contact/, login/, inscription/ -> site public
dashboard/ -> tableau de bord (proprio/équipe), un
dossier par module (horaire, inventaire,
planning, temperature, entreprise/...)
moi/ -> app mobile employé (PWA), auth séparée
(code d'entreprise + NIP, pas Supabase Auth)
api/ -> routes serveur : dashboard (Supabase Auth),
employe-app/* (session employé), webhooks
(stripe, wix), cron/*
globals.css -> tout le style de l'app (un seul fichier)
components/
entreprise/, horaire/, inventaire/, planning/, discussion/, settings/...
-> composants du dashboard, organisés par module
moi/ -> composants de l'app mobile employé
lib/
supabaseClient.js -> client Supabase côté navigateur (anon key)
adminServer.js -> client Supabase côté serveur (service_role)
employeSession.js -> vérification des sessions employé (/moi)
pushServer.js -> envoi des notifications push
stripeServer.js, wixClient.js, nethrisClient.js -> intégrations tierces
supabase/
schema.sql -> tables de base, à exécuter en premier
*.sql -> une migration par fonctionnalité ajoutée
depuis, à exécuter dans l'ordre
Chaque module s'active/désactive par entreprise et s'enregistre dans
lib/modules.js : Planning (tâches par journée), Horaire &
Pointage (quarts de travail, kiosque de pointage physique NIP + pointage
mobile GPS optionnel), Inventaire (suivi de stock, sync Wix
optionnelle) et Suivi des ventes (journal manuel multi-sources).
L'app mobile employé (/moi) donne accès à l'horaire, aux demandes
(congés/échanges de quart), à la discussion d'équipe, aux tâches et
températures (selon les modules actifs), avec notifications push
configurables et plusieurs thèmes visuels.