CalStats
Recupera datos de su calendario de Google o Apple y crea algunas estadísticas que pueden ser útiles para usted (o su jefe;)) Mis estadísticas se publican en https://mickekring.se/stats/time2/ (en sueco)
Imagen de arriba que muestra la parte frontal
¿Qué es esto? ¿Y qué hace?
Planifico todo el trabajo relacionado en mi calendario y nombro los eventos del calendario con prefijos como; ' ADM: Horario' (ADM = Administración), ' WEB: Blogs' y así sucesivamente. Luego, el script agrupa todas las categorías 'ADM:', 'WEB:' y otras (codificadas en el script), calcula el tiempo y lo divide por el tiempo total para obtener algunos porcentajes y otras cosas que me resultan útiles. En pocas palabras, es una herramienta para asegurarme de aprovechar bien mi tiempo.
También tengo un segundo calendario donde pongo mis 8 horas al día para que mi guión pueda comparar cuánto debería haber trabajado y cuánto he trabajado realmente.
El script Python se ejecuta en una Raspberry Pi y recupera y actualiza estadísticas cada 10 minutos, carga los archivos php a mi servidor web a través de sftp.
Descargo de responsabilidad
No soy un codificador . Simplemente me gusta crear cosas. :)
Construido con
- Python 3.x https://www.python.org/
- Bootstrap 5.x https://getbootstrap.com/
- Gráfico JS https://www.chartjs.org/
- Fuente impresionante https://fontawesome.com/
¿Quieres ejecutarlo tú mismo?
Este script está más o menos adaptado a mis necesidades, por lo que si deseas ejecutarlo, tendrás que cambiar un par de cosas. Principalmente nombres de las categorías de las que te gustaría realizar un seguimiento y, en ese caso, algunas condiciones. Como no soy codificador, (todavía) no he podido configurar todas las cosas que tienes que cambiar como variables constantes o listas, pero haré todo lo posible para guiarte.
LO QUE NECESITAS
- Un dispositivo que puede ejecutar Python 3.x
- Un servidor web con soporte php
- Un servidor sftp (en su servidor web) que el script utiliza para cargar archivos a su servidor web
- Un calendario público de Google (o calendario de Apple)
CONFIGURACIÓN
- Descargue todos los archivos a una carpeta de su elección
- Abra credenciales.yml y cambie la información de la cuenta sftp, las rutas, tanto la URL local (donde ejecuta el script) como remota (en su servidor web) y la URL de su archivo .ics de calendario público.
- Abra index.php y edite el título y los encabezados que desea mostrar en su interfaz
- Sube index.php y style.css a tu servidor web
- Abra main.py y cambie lo siguiente:
- Línea 36 | Lugar
- Línea 41 | Fecha de inicio a partir de la cual el script debe iniciar la pista
- Línea 100-123 | Ingrese sus propios prefijos de categoría y nombres de categorías que desea rastrear
- Línea 129 | Excluir eventos del calendario como almuerzo y desconocidos
- Línea 208 | El nombre del evento del calendario en el segundo calendario (el horario laboral "oficial" de su trabajo).
- Línea 307 | Modifica las categorías que deseas rastrear
- Línea 623 | Modifique las categorías de las que desea obtener estadísticas de 7 semanas y cambie/cree nombres de listas
- Línea 789 - 813 | Cambia a tus categorías
- Línea 827 - 840 | Cambia a tus categorías
- Línea 889 - 912 | Cambia a tus categorías
- Línea 632 - 640 | Cambia a tus categorías
- Línea 1027 | Modifique la frecuencia con la que desea que se ejecute el bucle principal en segundos
- Puede que me haya perdido un par de cosas... lo siento de antemano...
INSTALAR MÓDULOS DE PYTHON
- iCalevents - pip3 instala icalevents
- Pytz - pip3 instala pytz
- Paramiko - pip3 instalar paramiko
- YAML - pip3 instala pyyaml
- TinyDB - pip3 instala tinydb
- Fecha y hora - fecha y hora de instalación de pip3
- Pandas - pip3 instala pandas
CORRER
Historial de versiones
- 1.0 Cambié el nombre de algunos archivos y eliminé mucha hinchazón.
- 0.6.1 Se agregó un enlace de descarga para la base de datos JSON en la interfaz generada por calstats.py
- 0.6 Se agregó la carga del archivo de base de datos json al servidor web y se corrigió un error que ocurre cuando no hay tiempo total trabajado (por ejemplo, cuando está de vacaciones) que causaba una división cero.
- 0.5 Se agregaron fechas para el eje x en los gráficos de las 7 semanas. Limpieza menor de código.
- 0.4 Se agregó gráfico de horas trabajadas, últimas 7 semanas.
- 0.2 Carga inicial. Porcentajes por categoría desde una fecha que elijas. Porcentajes por categoría, últimas 7 semanas.
Créditos
La función de importación de calendario en el script se basa en el trabajo de jeinarsson https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7