CalStats
Recupera dados do seu calendário do Google ou Apple e cria algumas estatísticas que podem ser úteis para você (ou seu chefe;)) Minhas estatísticas estão sendo veiculadas ao vivo em https://mickekring.se/stats/time2/ (em sueco)
Imagem acima mostrando front-end
O que é isso? E o que isso faz?
Eu planejo tudo relacionado ao trabalho em meu calendário e nomeio os eventos do calendário com prefixos como; ' ADM: Agenda' (ADM = Administração), ' WEB: Blogs' e assim por diante. O script então agrupa todas as categorias 'ADM:', 'WEB:' e outras categorias (codificadas no script), calcula o tempo e divide pelo tempo total para obter algumas porcentagens e outras coisas que são úteis para mim. Simplificando, é uma ferramenta para garantir que estou gastando bem meu tempo.
Também tenho um segundo calendário onde coloco minhas 8 horas por dia para que meu roteiro possa comparar o quanto eu deveria ter trabalhado, e o quanto realmente trabalhei.
O script Python é executado em um Raspberry Pi e busca e atualiza estatísticas a cada 10 minutos, carrega os arquivos php para meu servidor web via sftp.
Isenção de responsabilidade
Eu não sou um codificador . Eu só gosto de criar coisas. :)
Construído com
- Python 3.x https://www.python.org/
- Bootstrap 5.x https://getbootstrap.com/
- Gráfico JS https://www.chartjs.org/
- Fonte incrível https://fontawesome.com/
Quer executá-lo sozinho?
Este script é adaptado às minhas necessidades, então se você quiser executá-lo, terá que alterar algumas coisas. Principalmente nomes das categorias que você gostaria de acompanhar e, nesse caso, algumas condições. Como não sou um programador, (ainda) não consegui definir todas as coisas que você precisa alterar como variáveis constantes ou listas, mas farei o meu melhor para orientá-lo.
O QUE VOCÊ PRECISA
- Um dispositivo que pode executar Python 3.x
- Um servidor web com suporte a php
- Um servidor sftp (no seu servidor web) que o script usa para fazer upload de arquivos para o seu servidor web
- Um calendário público do Google (ou calendário da Apple)
CONFIGURAR
- Baixe todos os arquivos para uma pasta de sua preferência
- Abra credenciais.yml e altere as informações e caminhos da conta SFTP - tanto o URL local (onde você executa o script) quanto remoto (no seu servidor web) e o URL para o arquivo .ics do seu calendário público
- Abra index.php e edite o título e os cabeçalhos que deseja exibir em seu front end
- Faça upload de index.php e style.css para seu servidor web
- Abra main.py e altere o seguinte:
- Linha 36 | Localidade
- Linha 41 | Data de início a partir de quando o script deve começar a ser rastreado
- Linha 100-123 | Insira seus próprios prefixos de categoria e nomes de categoria que você deseja rastrear
- Linha 129 | Exclua eventos da agenda como almoço e desconhecidos
- Linha 208 | O nome do evento do calendário no segundo calendário (seu horário de trabalho "oficial"
- Linha 307 | Modifique as categorias que você deseja rastrear
- Linha 623 | Modifique as categorias das quais deseja estatísticas de 7 semanas e altere/crie nomes de listas
- Linha 789 - 813 | Mude para suas categorias
- Linha 827 - 840 | Mude para suas categorias
- Linha 889 - 912 | Mude para suas categorias
- Linha 632 - 640 | Mude para suas categorias
- Linha 1027 | Modifique a frequência com que você deseja que o loop principal seja executado em segundos
- Posso ter perdido uma ou duas coisas... desculpe antecipadamente...
INSTALAR MÓDULOS PYTHON
- iCalevents - pip3 instalar icalevents
- Pytz - pip3 instalar pytz
- Paramiko - pip3 instalar paramiko
- YAML - pip3 instalar pyyaml
- TinyDB - pip3 instala o tinydb
- Datetime - data e hora de instalação do pip3
- Pandas - pip3 instalar pandas
CORRER
Histórico de versões
- 1.0 Renomeou alguns arquivos e eliminou muito inchaço.
- 0.6.1 Adicionado link de download para banco de dados JSON no front end gerado por calstats.py
- 0.6 Adicionado upload do arquivo de banco de dados json para o servidor web e corrigido um bug que ocorre quando há zero tempo total trabalhado (por exemplo, durante férias) que causava divisão zero.
- 0,5 Adicionadas datas para o eixo x nos gráficos das 7 semanas. Pequena limpeza de código.
- 0.4 Adicionado gráfico de horas trabalhadas, últimas 7 semanas.
- 0.2 Carregamento inicial. Porcentagens por categoria desde a data escolhida. Porcentagens por categoria, últimas 7 semanas.
Créditos
A função de importação de calendário no script é baseada no trabalho de jeinarsson https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7