Skip to content

Repository files navigation

NotionManagerNet

.NET C# Build Tests Coverage Last Run Schedule Notion Telegram License

Console app em .NET que monitora um banco de dados do Notion e classifica automaticamente os cards por prazo, atualizando o status de cada um e enviando um resumo diário pelo Telegram.


Como funciona

  1. Busca todos os cards do banco de dados configurado no Notion via API REST
  2. Para cada card elegível (com prazo e status não ignorado), classifica o status com base na distância até o prazo
  3. Atualiza o status no Notion caso tenha mudado
  4. Envia um resumo com todas as atualizações para um chat do Telegram

Regras de classificação

Prazo Status atribuído
Antes de hoje Atrasado
Hoje Hoje
Até o próximo sábado Esta semana
Até o sábado seguinte Próxima semana
Ainda neste mês Este mês
No próximo mês Próximo mês

Os status Completo, Em andamento e Lembrete são ignorados — cards com esses status nunca têm o prazo reclassificado.


Tecnologias


Configuração

As credenciais são lidas via variáveis de ambiente ou User Secrets (desenvolvimento local).

Variável Descrição
NOTION_TOKEN Token de integração do Notion
NOTION_DATABASE_ID ID do banco de dados do Notion
TELEGRAM_BOT_TOKEN Token do bot do Telegram
TELEGRAM_CHAT_ID ID do chat que receberá o resumo

Desenvolvimento local com User Secrets

dotnet user-secrets set "NOTION_TOKEN" "secret_..."
dotnet user-secrets set "NOTION_DATABASE_ID" "..."
dotnet user-secrets set "TELEGRAM_BOT_TOKEN" "..."
dotnet user-secrets set "TELEGRAM_CHAT_ID" "..."

Executando

dotnet run --project src/NotionManagerNet/NotionManagerNet.csproj

Testes

dotnet test

Os testes cobrem:

  • CardClassifier — todas as regras de classificação por prazo com data fixa (determinístico)
  • NotionCardMapper — mapeamento de JSON da API para o modelo de domínio
  • TelegramService — montagem da mensagem, escape de HTML e pluralização

Estrutura do projeto

src/
  NotionManagerNet/
    Configurations/   # NotionSettings, TelegramSettings
    Interfaces/       # INotionService, ITelegramService
    Mappers/          # NotionCardMapper
    Models/           # TaskCard
    Services/         # NotionService, TelegramService, CardClassifier
    Program.cs
tests/
  NotionManagerNet.Tests/
    CardClassifierTests.cs
    NotionCardMapperTests.cs
    TelegramServiceTests.cs

Template Notion

Acesse o template utilizado neste projeto e duplique para o seu Notion:

Notion Template

Clique em Duplicate no canto superior direito para copiar o template para o seu workspace.

About

Gerenciador de tarefas pessoal do Notion

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages