Plataforma para publicar y descubrir servicios personales (conversaciones, psicología, masajes, compañía, coaching). Cada perfil puede registrarse, completar sus datos, publicar sus servicios con fotos, descripción y precio, y recibir contactos directos por WhatsApp.
- Angular 19 (standalone, signals, control flow
@if/@for) - Angular Material 19 + Tailwind CSS 3
- Firebase: Auth, Firestore, Storage, Hosting (vía
@angular/fire 19)
src/
├─ app/
│ ├─ core/
│ │ ├─ guards/auth.guard.ts # protege rutas privadas
│ │ ├─ models/ # Profile, ServiceItem, CATEGORIES
│ │ ├─ services/ # AuthService, ProfileService, ServicesService, StorageService
│ │ └─ utils/whatsapp.util.ts # builder de enlaces wa.me
│ ├─ layout/ # header, footer
│ ├─ pages/
│ │ ├─ auth/ # login, register
│ │ ├─ home/ # listado público
│ │ ├─ profile/ # editar perfil
│ │ └─ services/ # mis servicios, editor, detalle público
│ ├─ app.component.ts
│ ├─ app.config.ts # providers de Firebase
│ └─ app.routes.ts # lazy routes
├─ environments/ # config Firebase (dev / prod)
└─ styles.scss # Tailwind + tema Material rosa
- Ve a la consola de Firebase del proyecto
project-955086892923→ Project settings → Your apps → Web app. - Copia los valores (
apiKey,messagingSenderId,appId, etc.) y reemplázalos en:src/environments/environment.tssrc/environments/environment.prod.ts
- Habilita los productos:
- Authentication → Sign-in method → Email/Password.
- Firestore Database → crear base de datos.
- Storage → crear bucket.
- Sube las reglas y los índices:
npx firebase login # solo la primera vez
npx firebase deploy --only firestore:rules,firestore:indexes,storagenpm start # http://localhost:4200npm run deploy # build prod + firebase deploy
# o sólo hosting:
npm run deploy:hostingEl firebase.json ya apunta el directorio público a dist/pipin/browser y redirige todas las rutas a index.html para soportar el routing de Angular.
- Usuario entra a
/auth/register, crea cuenta con email + clave → se crea automáticamente un documento enprofiles/{uid}. - Completa su perfil en
/profile(avatar, bio, ciudad, WhatsApp). - Crea servicios en
/services/newcon fotos (Firebase Storage), descripción y precio. - El servicio aparece en
/(home) si está marcado como publicado. - Visitantes ven el detalle en
/s/:idy hacen clic en Contactar por WhatsApp → abrewa.me/<numero>?text=....
firestore.rules: lectura pública de perfiles y servicios; escritura restringida al dueño (auth.uid).storage.rules: subida limitada a 5 MB e imágenes, sólo dentro de la carpeta del propio usuario.