Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
The interactive guidebook by Nice locals: hidden beaches, viewpoints, local food and hikes on the French Riviera.
LifestyleTypeScript · HTMLGitHub @MartoucheOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Création d'un ebook personnalisé pour nos touristes préférés
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Ebook interactif + web-app : chapitres éditoriaux, carte MapLibre, filtres (dont Gratuit / FREE), fiches lieux, générateur d'itinéraire express, carnet de favoris partageable et back-office admin.
Stack : Next.js 15 (App Router, React 19, Server Actions) · Supabase (@supabase/ssr, Auth, Storage, RLS) ·
Tailwind CSS v4 · framer-motion · MapLibre GL (fonds CARTO, sans clé).
npm install (le postinstall copie le worker MapLibre dans public/maplibre/).
Copier .env.example en .env.local et renseigner les clés Supabase.
Dans Supabase → SQL Editor, exécuter supabase/schema.sql
(tables, enums, RLS, buckets places-images / gpx-tracks, trigger profiles, données de départ).
Supabase → Authentication → URL Configuration : ajouter http://localhost:3000/auth/callback
(et l'URL Vercel en production) aux Redirect URLs.
npm run dev, créez un compte sur /connexion, puis promouvez-le administrateur :
update public.profiles set role = 'ADMIN' where email = '[email protected]';
| Route | Rôle |
|---|---|
/ | Couverture, sommaire bento, itinéraire express, coups de cœur |
/explorer | Filtres + bascule Liste / Carte synchronisée (état dans l'URL : ?category=plage&price=free&view=map) |
/chapitres/[slug] | Chapitre de l'ebook |
/lieux/[slug] | Fiche éditoriale : carrousel, Conseil du Local, audio, Waze / Google Maps, GPX |
/favoris | Carnet personnel sur carte + partage, export GPX, impression PDF |
/carnet/[id] | Itinéraire / carnet partagé (public ou propriétaire, via RLS) |
/compte | Profil, itinéraires sauvegardés |
/admin | Back-office (rôle ADMIN) : spots, chapitres, uploads Storage, placement sur carte |
Ajoutées à la main depuis l'admin. Ensuite, pour les renommer (<slug>-01-<empreinte>.webp) et les compresser
(requiert SUPABASE_SERVICE_ROLE_KEY dans .env.local, jamais commitée) :
npm run optimize:photos # simulation
npm run optimize:photos -- --apply # les anciens fichiers sont archivés, pas supprimés
npx tsx scripts/restore-photos.ts # liste les sauvegardes, puis --stamp=<horodatage> --apply
Les crédits (image_credits) des photos Wikimedia restantes sont toujours affichés sur la fiche.
Importer le dépôt, définir NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY et
NEXT_PUBLIC_SITE_URL (URL de production), puis déployer.