Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
DTU 기준 실제 제조사 레퍼런스로 옥상·테라스를 암호화하고, 각 구역을 수신까지 추적합니다
Chiffrez une toiture-terrasse selon les DTU avec les vraies références fabricants, puis suivez chaque zone jusqu'à la réception. Sur le téléphone, même sans réseau.
비즈니스TypeScript · PLpgSQLGitHub @kwhrapat-cell온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Portail applicatif du MVP : Tableau de bord, Chantiers, Devis, Clients, Calculateur, Paramètres — avec authentification et données réelles.
Ce projet est pensé pour être développé seul, sans équipe externe, avec l'aide d'un assistant IA (Claude). Chaque étape ci-dessous peut être copiée- collée telle quelle.
npm install
cp .env.example .env.local
supabase/schema.sql.Project URL et anon public key
dans .env.local.npm run dev
Ouvrir http://localhost:3000 → vous êtes redirigé vers /login.
Cliquer sur Créer un compte : cela crée votre utilisateur, votre
entreprise et votre profil administrateur en une seule fois.
Dans Supabase → Table Editor → entreprises, copier l'id de votre
entreprise. Le coller à la place de <ENTREPRISE_ID> dans
supabase/seed.sql, puis exécuter ce fichier dans SQL Editor. La page
Chantiers affichera alors ces données réelles.
NEXT_PUBLIC_SUPABASE_URL et NEXT_PUBLIC_SUPABASE_ANON_KEY.git push redéploie automatiquement — aucune
intervention manuelle nécessaire ensuite.Stripe refuse les entreprises basées en Nouvelle-Calédonie : les forfaits sont encaissés par Lemon Squeezy, qui est le vendeur officiel vis-à-vis du client (« merchant of record ») : il encaisse la carte ou PayPal, applique les taxes, envoie la facture au client, puis reverse l'argent sur PayPal (la Nouvelle-Calédonie n'est pas dans sa liste de virements bancaires). Frais indicatifs : 5 % + 0,50 $ par paiement, plus des frais de versement PayPal — à revérifier sur leur page de tarifs.
supabase/migration-paiement-lemonsqueezy.sql dans Supabase →
SQL Editor, puis passer sa ligne à « Oui » dans supabase/ETAT-MIGRATIONS.md.https://devis-etanche.vercel.app/api/webhooks/lemonsqueezy, choisir une
phrase secrète au hasard, et cocher tous les événements subscription_….LEMONSQUEEZY_API_KEY, LEMONSQUEEZY_STORE_ID,
LEMONSQUEEZY_VARIANT_ARTISAN, LEMONSQUEEZY_VARIANT_PRO,
LEMONSQUEEZY_WEBHOOK_SECRET, et SUPABASE_SERVICE_ROLE_KEY (Supabase →
Project Settings → API, ⚠️ secrète, jamais publique), puis redéployer.Depuis /parametres, choisir un forfait payant ouvre la page de paiement
Lemon Squeezy ; une fois le paiement confirmé, le webhook met automatiquement
à jour entreprises.forfait. Le bouton « Gérer mon abonnement » renvoie
ensuite vers l'espace Lemon Squeezy (changer de forfait, de carte, résilier,
factures). À la fin d'un abonnement résilié ou impayé, l'entreprise revient
d'elle-même au forfait Découverte.
Pour encaisser réellement : activer la boutique dans Lemon Squeezy (questionnaire + vérification d'identité, compter jusqu'à quelques semaines), puis remplacer la clé, les numéros de variantes et le webhook de test par ceux du mode réel.
Exécuter supabase/storage.sql dans le SQL Editor (après avoir créé un
bucket public nommé photos depuis Storage → New bucket). Les photos
s'ajoutent alors directement depuis la fiche d'un chantier.
Chaque devis a une page dédiée (/devis/[id]) mise en page pour
l'impression. Le bouton "Exporter en PDF" déclenche l'impression du
navigateur (Ctrl/Cmd+P → "Enregistrer en PDF") — aucune dépendance
supplémentaire, fonctionne immédiatement.
public/sw.js) met en cache les pages principales
pour une consultation hors connexion.lib/offline/queue.ts) et synchronisées
automatiquement au retour du réseau.Sur /calculateur, le bouton "Générer un devis à partir de ce calcul"
transmet les quantités calculées vers /devis/nouveau, où elles arrivent
déjà réparties en lignes (désignation, quantité, prix unitaire par défaut,
modifiable avant enregistrement).
Chaque chantier a un token_public généré automatiquement. Depuis la fiche
chantier, le bouton "Copier le lien de suivi client" génère une URL du type
https://votre-site/espace-client/<token> à envoyer au client : il y voit
l'avancement, les zones et les dernières photos, sans jamais se connecter.
La sécurité repose sur le fait que le token est un UUID non devinable — les
données exposées sont volontairement limitées (pas de montants, pas
d'informations sur les autres chantiers) via la fonction Postgres
espace_client_chantier (voir fin de supabase/schema.sql).
lib/calc/etancheite.ts) est le seul endroit à modifier
pour ajuster des ratios : toutes les pages qui l'utilisent se mettent à
jour automatiquement.| Page | État |
|---|---|
| Tableau de bord | ✅ Connectée à Supabase (stats + chantiers récents réels) |
| Chantiers (liste + création) | ✅ Connectée, formulaire "Nouveau chantier" fonctionnel |
| Détail chantier | ✅ Connectée, zones réelles + formulaire "Ajouter une zone" |
| Devis (liste + création) | ✅ Connectée, formulaire avec lignes dynamiques et calcul auto HT/TTC |
| Clients (liste + création) | ✅ Connectée, formulaire "Nouveau client" fonctionnel |
| Calculateur | ✅ Formules DTU réelles, aucune donnée externe requise |
| Paramètres | ✅ Connectée : entreprise, équipe, forfait + paiement Lemon Squeezy |
| Connexion / Inscription | ✅ Fonctionnel (Supabase Auth) |
| Photos de chantier | ✅ Upload réel (Supabase Storage) |
| Export PDF devis | ✅ Page imprimable dédiée par devis |
| Mode hors ligne | ✅ Cache + file de synchronisation basique |
| Paiement / forfaits | ✅ Lemon Squeezy (page de paiement + webhook de mise à jour automatique) |
| Calculateur → Devis | ✅ Génération de devis pré-rempli en un clic |
| Espace client | ✅ Page publique de suivi via lien sécurisé (sans compte) |
Toutes les pages listées "✅ Connectée" lisent et écrivent réellement dans
Supabase — plus aucune donnée en dur dans app/.