Skip to content

Svilleg97/TaskCal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskCal

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


✨ Funcionalidades

📅 Calendario y tareas

  • 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

🍽️ Planificación de comidas

  • Registra desayuno, almuerzo, cena y snacks por día
  • Lista de compras generada automáticamente a partir de las comidas de la semana

💪 Rutinas de ejercicio

  • Registra entrenamientos: cardio, fuerza, flexibilidad, ciclismo, natación
  • Seguimiento de cumplimiento semanal con porcentaje

💰 Metas de ahorro

  • 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

🛒 Lista de compras

  • Agrega ítems manualmente o generados desde el plan de comidas
  • Organizada por categorías con checkboxes

🖨️ Impresión

  • Exporta vistas de día, semana o mes con opciones configurables

🌐 Bilingüe

  • Interfaz completa en español e inglés

🛠️ Tecnologías

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

🏗️ Arquitectura

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.


🚀 Cómo correrlo localmente

Prerrequisitos

  • Node.js 18+
  • Una cuenta de Firebase con Firestore habilitado
  • Google Calendar API no requerida — la sincronización usa enlaces iCal públicos

Instalación

git clone https://github.com/tu-usuario/taskcal.git
cd taskcal
npm install

Variables de entorno

Crea 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_id

Reglas de Firestore

En 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;
    }
  }
}

Correr en desarrollo

npm run dev

Build para producción

npm run build
npm run preview

📁 Estructura del proyecto

taskcal/
├── 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

🔒 Privacidad y seguridad

  • 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

👩‍💻 Autora

Sara Villegassaravillegasdev.com


© 2026 TaskCal · Sara Villegas

About

Personal productivity app with task management, iCal sync, meal planning, workout tracking, and savings goals. Built with React and Firebase.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages