Skip to content

Adhara-Tech/Tempus

 
 

Repository files navigation

Sistema de Fichaje y Gestión de Ausencias

Aplicación completa desarrollada con Flask para gestionar fichajes de empleados, solicitudes de vacaciones y solicitudes de bajas médicas.

Versión actual: v0.5.0

Características

  • Sistema de fichaje (Entrada/Salida)
  • Solicitud y aprobación de Vacaciones (descuentan días)
  • Solicitud y aprobación de Bajas (no descuentan días)
  • Sistema de roles (usuario, aprobador, admin)
  • Notificaciones por email (simuladas en desarrollo)
  • Cronograma de ausencias (Vacaciones y Bajas)
  • Resúmenes de horas trabajadas (diario/semanal)
  • Panel de administración completo (Gestión de usuarios, festivos, aprobadores)
  • Cálculo automático de días laborables (descuenta festivos y fines de semana)

Requisitos

  • Python 3.8+
  • Flask
  • Flask-SQLAlchemy
  • Flask-Login
  • Flask-Mail
  • Flask-Dance
  • Gunicorn (para producción)

Instalación

1. Desarrollo Local

  1. Crear y activar un entorno virtual:

    python -m venv venv
    source venv/bin/activate  # En Windows: venv\Scripts\activate
  2. Instalar dependencias:

    pip install -r requirements.txt
  3. Ejecutar la aplicación:

    flask run --debug

    La aplicación estará disponible en http://localhost:5000.

2. Ejecutar con Docker (Producción)

  1. Asegúrate de tener Docker y Docker Compose instalados.

  2. Construye y levanta el contenedor:

    docker-compose up --build
  3. La aplicación estará disponible en http://localhost:5000. La base de datos (fichaje.db) se guardará en un volumen de Docker llamado fichador_web_db_data para persistir los datos.

Usuario por Defecto

Al iniciar por primera vez, se crea automáticamente un usuario administrador:

  • Email: admin@example.com
  • Contraseña: admin123

3. Configuración de Google OAuth

  1. Configura las credenciales de Google OAuth en el archivo .env:

    GOOGLE_CLIENT_ID=your_client_id
    GOOGLE_CLIENT_SECRET=your_client_secret
  2. En la consola de Google Cloud Platform (https://console.cloud.google.com/):

  3. Reinicia tu servidor Flask después de hacer cambios en .env

4. Integración con Google Calendar (Opcional)

La aplicación puede sincronizar automáticamente las vacaciones y bajas aprobadas a un calendario compartido de Google visible por todos los empleados.

Opción A: Service Account (Producción)

  1. Crea un Service Account en Google Cloud Console
  2. Descarga las credenciales JSON → service-account.json
  3. Crea un calendario compartido en Google Calendar
  4. Comparte el calendario con el service account (permisos: "Hacer cambios")
  5. Configura en .env:
    GOOGLE_CALENDAR_ID=abc123@group.calendar.google.com
    GOOGLE_SERVICE_ACCOUNT_FILE=service-account.json

Opción B: OAuth Usuario Admin (Desarrollo)

  1. Habilita Calendar API en Google Cloud Console
  2. Crea credenciales OAuth → credentials.json
  3. Ejecuta: python scripts/authenticate_calendar.py
  4. Configura en .env:
    GOOGLE_CALENDAR_ID=abc123@group.calendar.google.com

Ver documentación completa: docs/GOOGLE_CALENDAR_SETUP.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 58.5%
  • HTML 38.6%
  • JavaScript 2.0%
  • Other 0.9%