Organiza tu semana. Conecta tu calendario. Gestiona tus tareas en un solo lugar.
TaskCal es una aplicación web de productividad personal que combina gestión de tareas, sincronización de calendario vía iCal, planificación de comidas, rutinas de ejercicio, metas de ahorro y lista de compras — todo en una sola interfaz. Construida con React y Firebase, con persistencia de datos por usuario en tiempo real.
🌐 app.saravillegasdev.com/ · 👩💻 saravillegasdev.com
- Autenticación con Google via Firebase Auth — login limpio sin advertencias de OAuth
- Sincronización iCal universal — conecta cualquier calendario (Google Calendar, Apple Calendar, Outlook) mediante enlace público
.ics - Vistas de día, semana y mes
- Tareas personales — crea, edita y elimina tareas propias
- Etiquetas con colores — Trabajo, Personal, Urgente, Ideas, Salud, Aprendizaje (personalizables)
- Eventos recurrentes identificados visualmente
- Recordatorios por tarea
- Soporte para Google Meet — accede al enlace de videollamada directo desde el evento
- Asistentes — visualiza quién está invitado a cada evento
- Registra desayuno, almuerzo, cena y snacks por día
- Lista de compras generada automáticamente a partir de las comidas de la semana
- Registra entrenamientos: cardio, fuerza, flexibilidad, ciclismo, natación
- Seguimiento de cumplimiento semanal con porcentaje
- Define una meta con nombre, monto objetivo y fecha límite
- Calcula automáticamente cuánto ahorrar por período (diario, semanal, quincenal, mensual)
- Seguimiento visual con barra de progreso
- Agrega ítems manualmente o generados desde el plan de comidas
- Organizada por categorías con checkboxes
- Exporta vistas de día, semana o mes con opciones configurables
- Interfaz completa en español e inglés
| Tecnología | Uso |
|---|---|
| React 19 | UI y lógica de componentes |
| Vite 7 | Bundler y servidor de desarrollo |
| Firebase Auth | Autenticación con Google |
| Firestore | Persistencia de datos en tiempo real por usuario |
iCal / .ics |
Sincronización universal de calendarios |
| Lucide React | Iconografía |
| ESLint | Calidad de código |
Usuario → Firebase Auth (Google login)
→ Firestore (datos persistentes por uid)
→ iCal feed (eventos de calendario, solo lectura)
Cada usuario tiene su propia colección en Firestore bajo users/{uid}/data/main. Las reglas de seguridad garantizan que ningún usuario puede acceder a datos de otro.
- Node.js 18+
- Una cuenta de Firebase con Firestore habilitado
- Google Calendar API no requerida — la sincronización usa enlaces iCal públicos
git clone https://github.com/tu-usuario/taskcal.git
cd taskcal
npm installCrea un archivo .env en la raíz:
VITE_FIREBASE_API_KEY=tu_api_key
VITE_FIREBASE_AUTH_DOMAIN=tu_proyecto.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=tu_proyecto
VITE_FIREBASE_STORAGE_BUCKET=tu_proyecto.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=tu_sender_id
VITE_FIREBASE_APP_ID=tu_app_idEn Firebase Console → Firestore → Reglas:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/{document=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
npm run devnpm run build
npm run previewtaskcal/
├── src/
│ ├── main.jsx # Punto de entrada
│ ├── AppRoot.jsx # Autenticación, estado global, parser iCal
│ ├── App.jsx # Vista principal — calendario, tareas, comidas, ejercicio
│ ├── LoginScreen.jsx # Pantalla de inicio de sesión
│ └── firebase.js # Configuración de Firebase y Firestore
├── public/
├── .env # Variables de entorno (no incluido en el repo)
└── vite.config.js
- La sincronización de calendario usa enlaces iCal de solo lectura — no requiere permisos OAuth de Google Calendar
- Los datos de usuario se almacenan en Firestore bajo su propio
uid, inaccesibles para otros usuarios - Las credenciales de Firebase se manejan via variables de entorno, nunca hardcodeadas
Sara Villegas — saravillegasdev.com
© 2026 TaskCal · Sara Villegas