Aplicación Svelte con arquitectura Atomic Design, integración con Firebase y Capacitor para desarrollo móvil.
Node.js (versión especificada en .nvmrc)
# Si usas nvm
nvm install
nvm use
pnpm (gestor de paquetes)
npm install -g pnpm
VS Code con extensión Svelte (se instalará automáticamente al abrir el proyecto)
Clonar el repositorio
git clone https://github.com/aleshaxhurtado/guard-svelte.git
cd guard-svelte
Instalar dependencias
pnpm install
Configurar Firebase (Opcional)
⚠️ Importante: Firebase está instalado como dependencia pero NO se está usando actualmente en el código. El proyecto funciona perfectamente sin configurar Firebase.
Solo necesitas configurar Firebase cuando vayas a usar servicios como:
Si necesitas usar Firebase, sigue estos pasos:
Opción A: Si trabajas en el proyecto existente (condaty-app)
a. Instalar Firebase CLI (si no lo tienes):
pnpm add -g firebase-tools
b. Iniciar sesión en Firebase:
firebase login
c. Verificar que estás conectado al proyecto correcto:
firebase projects:list
El proyecto configurado es condaty-app (verificado en .firebaserc).
d. Crear archivo de inicialización de Firebase:
Crea src/lib/firebase.js con la configuración del proyecto:
import { initializeApp } from 'firebase/app';
import { getFirestore } from 'firebase/firestore';
import { getAuth } from 'firebase/auth';
const firebaseConfig = {
apiKey: "TU_API_KEY",
authDomain: "condaty-app.firebaseapp.com",
projectId: "condaty-app",
storageBucket: "condaty-app.appspot.com",
messagingSenderId: "TU_SENDER_ID",
appId: "TU_APP_ID"
};
const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);
export const auth = getAuth(app);
export default app;
e. Obtener las credenciales:
condaty-appsrc/lib/firebase.jsOpción B: Si quieres usar tu propio proyecto Firebase
a. Crea un nuevo proyecto en Firebase Console
b. Actualiza .firebaserc con tu project ID:
{
"projects": {
"default": "tu-proyecto-id"
}
}
c. Sigue los pasos d y e de la Opción A con tus propias credenciales
📚 Documentación completa: Ver docs/FIREBASE.md para más detalles sobre reglas, índices y deploy.
💡 Nota: Si no vas a usar Firebase aún, puedes saltarte este paso y continuar con el desarrollo. La app funcionará normalmente sin Firebase configurado.
Configurar Cursor/VS Code
.cursorrules está incluido y se aplicará automáticamente en CursorEjecutar el proyecto
pnpm dev
.cursorrules - Reglas de desarrollo para Cursor AI.nvmrc - Versión de Node.js requerida.vscode/extensions.json - Extensiones recomendadas para VS Codepnpm-workspace.yaml - Configuración de workspace de pnpmfirebase.json - Configuración de Firebase.firebaserc - Proyecto de Firebasefirestore.rules - Reglas de seguridad de Firestorefirestore.indexes.json - Índices de Firestorecapacitor.config.js - Configuración de Capacitordocs/FIREBASE.md - Configuración y uso de Firebasedocs/CAPACITOR_SETUP.md - Setup de Capacitor para móvildocs/COMPONENTS.md - Documentación de componentespnpm dev - Inicia servidor de desarrollopnpm build - Construye para producciónpnpm preview - Previsualiza build de producciónpnpm deploy - Build y deploy a Firebase Hostingpnpm firebase:deploy - Deploy completo de Firebasepnpm firebase:deploy:hosting - Deploy solo de hostingpnpm firebase:deploy:firestore - Deploy de Firestorepnpm cap:sync - Sincroniza con Capacitorpnpm cap:open:android - Abre proyecto Androidpnpm cap:open:ios - Abre proyecto iOSEl proyecto sigue Atomic Design:
Router personalizado sin dependencias ubicado en src/lib/router.js. Ver .cursorrules para más detalles.
Los commits siguen el estándar Conventional Commits en español:
feat(ámbito): descripción - Nueva funcionalidadfix(ámbito): descripción - Corrección de bugdocs(ámbito): descripción - Documentaciónrefactor(ámbito): descripción - Refactorizaciónchore(ámbito): descripción - Tareas de mantenimientoEjemplo: feat(auth): agregar página de login
Alias útiles para trabajar desde múltiples equipos (casa/oficina):
# Alias para TRAER todo (guarda backup y sincroniza con remoto)
git config --global alias.sync '!git stash push -u -m "backup-antes-de-sync-$(date +%Y%m%d-%H%M%S)" 2>/dev/null; git fetch --all && git reset --hard origin/main && git clean -fd && echo "✅ Sincronizado con el remoto (backup guardado en stash)"'
# Alias para DESHACER sync (recupera el último backup)
git config --global alias.undo-sync '!git stash list | head -1 | grep -q "backup-antes-de-sync" && git stash pop || echo "❌ No hay backup de sync para recuperar"'
# Alias para SUBIR todo (add, commit y push)
git config --global alias.up '!f() { git add . && git commit -m "${1:-sync: actualizar cambios}" && git push && echo "✅ Todo subido al remoto"; }; f'
| Comando | Descripción |
|---|---|
git sync |
Guarda backup en stash → sincroniza con remoto |
git undo-sync |
Recupera el último backup (si hiciste sync por error) |
git up |
Subir todo con mensaje por defecto |
git up "mensaje" |
Subir todo con mensaje personalizado |
🏠 Casa (noche): terminas → git up
🏢 Oficina (mañana): llegas → git sync
🏢 Oficina (tarde): terminas → git up
🏠 Casa (noche): llegas → git sync
git sync # ¡Ups! Debí hacer git up
git undo-sync # Recupera tus cambios del backup automático
git up "mensaje" # Ahora sí, sube los cambios
git stash list # Muestra todos los backups en stash
⚠️ Importante: git sync ahora guarda un backup automático antes de sincronizar, pero siempre es mejor asegurarte de hacer git up antes de cambiar de equipo.