WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
A coffee journal PWA under the @kurodacafe brand. No likes, no rankings
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Sorbo es un diario de café de especialidad: registra cafés, catas y recetas, comparte con tu gente y descubre lo que toma la comunidad.
Hubo un rediseño v2 («una taza, una nota») en octubre de 2026 que se retiró para rehacerlo por partes. Todo quedó guardado en la rama
backup/v2-2026-10-14y el tagv2-snapshot.
Sorbo es una marca propia; KurodaCafe solo aparece como crédito («por KurodaCafe»).
assets/css/main.css y tailwind.config.ts; design/v2/ guarda el sistema exportado (tokens, guía, componentes y prototipo) como referencia para el rediseño.#141712, olive #556B3A, sage #96B36A, honey #E5B84B, fondo #F4F2EB.SORBO.md es el índice de dónde vive cada cosa del proyecto (diseño, marketing, bitácora).
| Capa | Tecnología |
|---|---|
| Frontend | Nuxt 3, Vue 3, TypeScript |
| Estado | Pinia |
| Estilos | Tailwind CSS |
| Datos | Firebase Firestore (con caché persistente para uso sin conexión) |
| Auth | Firebase Authentication (correo y Google) |
| PWA | @vite-pwa/nuxt |
| Errores | Sentry |
| Hosting | Vercel |
| Tests | Vitest + emulador de Firestore (reglas) |
Todo funciona dentro de la capa gratuita de Firebase y Vercel.
Necesitas Node.js 22 o superior y un proyecto de Firebase con Firestore y Authentication (correo y Google) activos.
git clone https://github.com/kurodaSensei/sorbo.git
cd sorbo
npm install
cp .env.example .env
Llena .env con las credenciales de tu app web de Firebase (Project Settings → General → Your apps):
NUXT_PUBLIC_FIREBASE_API_KEY=
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NUXT_PUBLIC_FIREBASE_PROJECT_ID=
NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NUXT_PUBLIC_FIREBASE_APP_ID=
Despliega las reglas e índices de Firestore del repo y arranca:
firebase deploy --only firestore
npm run dev
Abre http://localhost:3000 y crea tu cuenta.
npm run test:rules
Prueba las reglas de Firestore contra el emulador (necesita Java y firebase-tools). En GitHub, la Action Tests las corre en cada PR.
main se despliega solo en Vercel (sorbo.app). Si cambias firestore.rules, despliégalas aparte:
firebase deploy --only firestore:rules
sorbo/
├── assets/css/ # Estilos base
├── components/ # coffee, tasting, recipe, roaster, explore, vertido, ui…
├── composables/ # useFirebase, useAuth, useFriends…
├── design/v2/ # Design System v2 exportable (referencia de marca)
├── pages/ # Rutas (la app vive en /app)
├── plugins/ # Firebase
├── stores/ # Pinia
├── tests/rules/ # Pruebas de reglas de Firestore
├── types/ # Tipos de TypeScript
├── utils/ # Constantes y formatters
└── firestore.rules # Reglas de seguridad
| Colección | Qué guarda |
|---|---|
tastings | Catas: café, puntuación (0–10) y atributos, notas, método, visibilidad |
coffees | Cafés: marca, origen, proceso, variedad, tueste |
recipes | Recetas con sus pasos |
roasters | Marcas |
wishlist | Quiero probar |
friendships | Amistades y solicitudes |
users, userPreferences | Perfil y listas personalizadas |
Cada documento lleva userId. Notas, cafés y recetas pueden ser privados, para amigos o públicos; las reglas viven en firestore.rules y se prueban en tests/rules/.
Polyform Noncommercial 1.0.0. Puedes usar, copiar, estudiar y modificar el código para fines no comerciales (proyectos personales, educación, investigación). Para uso comercial necesitas autorización del autor.
Sí, este proyecto se construyó con IA (Claude Code). El humano puso el café, el criterio y las ideas. La IA puso las manos (que no tiene) en el teclado (que tampoco tiene). Ningún barista fue reemplazado en el proceso.