Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Centro de mando para el viaje grupal Medellín - Caribe (9-18 de octubre) con itinerario interactivo, sugerencias, encuestas y control de préstamos.
Translation pending
LifestyleTypeScript · CSSGitHub @CristianCastaGuOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Centro de mando para el viaje grupal Medellín - Caribe (9-18 de octubre): itinerario interactivo, sugerencias, encuestas y control de préstamos entre el grupo. La base de datos vive en Supabase (Postgres), así que todo lo que agrega el admin o el grupo (itinerario, sugerencias, votos, préstamos) se guarda de verdad y se ve igual para todos, tanto en local como en producción (Vercel).Read the full README ↗
Centro de mando para el viaje grupal Medellín - Caribe (9-18 de octubre): itinerario interactivo, sugerencias, encuestas y control de préstamos entre el grupo.
La base de datos vive en Supabase (Postgres), así que todo lo que agrega el admin o el grupo (itinerario, sugerencias, votos, préstamos) se guarda de verdad y se ve igual para todos, tanto en local como en producción (Vercel).
us-east-1, y una contraseña de base de datos —
guárdala, no se vuelve a mostrar).supabase/schema.sql de este repo,
copia todo su contenido, pégalo en el editor y dale Run.
Esto crea las 6 tablas (travelers, itinerary_days, suggestions, polls,
loans, trip_config) con Row Level Security activado.SUPABASE_URL.anon public) → esto es
SUPABASE_SERVICE_ROLE_KEY.⚠️ La
service_rolekey tiene acceso total a la base sin restricciones. Solo se usa del lado del servidor (nunca se envía al navegador) — por eso las rutas siguen siendo/api/trip/*en vez de que el frontend hable directo con Supabase.
Requisitos: Node.js 18+
npm install
.env.example a .env.local y pega tus llaves de Supabase:
SUPABASE_URL="https://tu-proyecto.supabase.co"
SUPABASE_SERVICE_ROLE_KEY="ey...."
npm run dev
http://localhost:3000. La primera vez que se pida cualquier dato
(/api/trip/state), el backend siembra automáticamente el itinerario y
datos de ejemplo definidos en src/defaultData.ts — revisa el Table
Editor de Supabase y deberías ver las filas aparecer.SUPABASE_URLSUPABASE_SERVICE_ROLE_KEYTRIP_GROUP_SECRET / TRIP_ADMIN_PASSWORD si quieres
cambiar las palabras clave sin tocar código.vite build) y publica
automáticamente la función serverless en api/[...path].ts,
que maneja todas las rutas /api/trip/* contra Supabase.| Acceso | Palabra clave por defecto |
|---|---|
| Grupo general | USabana |
| Admin | adminSabana |
Puedes cambiarlas sin tocar código con las variables de entorno
TRIP_GROUP_SECRET y TRIP_ADMIN_PASSWORD (ver .env.example).
src/
App.tsx, components/… → Frontend (React + Vite), sin cambios de UI
api.ts → Llama a /api/trip/* (igual que antes)
server/
supabaseClient.ts → Cliente de Supabase (solo servidor, service_role key)
tripStore.ts → Toda la lógica de lectura/escritura en Postgres
app.ts → Rutas Express /api/trip/* (usa tripStore)
server.ts → Entrada local: Express + Vite dev middleware
api/[...path].ts → Entrada Vercel: mismo Express app, como función serverless
supabase/schema.sql → DDL para crear las tablas en Supabase
El contrato de datos entre frontend y backend (TripState en src/types.ts)
no cambió, así que ningún componente de src/components necesitó editarse.