Sistema para envio automático de lembretes de pagamento de boletos bancários.
- Sobre o Projeto
- Funcionalidades
- Tecnologias Utilizadas
- Pré-requisitos
- Instalação
- Configuração
- Como Usar
- Contribuição
- Licença
- Contato
O InvoiceReminder é um sistema desenvolvido em C# para automatizar o envio de lembretes referentes a pagamentos de boletos bancários (invoices). Ele pode ser utilizado por empresas ou profissionais autônomos que desejam organizar e automatizar o processo de cobrança/reminder, evitando atrasos e otimizando o fluxo de caixa.
- Cadastro de clientes e notas fiscais
- Agendamento de lembretes automáticos via Telegram chat bot
- Personalização de mensagens de lembrete
- Relatórios de notas fiscais pendentes e lembretes enviados
- Suporte a múltiplos usuários
- Interface Rest API
- Linguagem: C#
- Framework: .NET Core 9
- Autenticação: JSON Web Token
- Banco de Dados: PostgreSQL
- Solução de ORM: Entity Framework Core 9 e Dapper
- Serviços Externos: Google Api, iText, Telegram.Bot
- Agendamento de Tarefas: Quartz.net
- Testes Unitários: MSTest, NSubstitute e Shouldly
- .NET SDK (versão recomendada: 9.0 ou superior)
- PostgreSQL (versão recomendada: 16 ou superior)
- Google OAuth Client para gerar chave de integração com o sistema de autenticação sem senha
- Criar um chat bot do Telegram através da interação com @BotFather
- Acesso à internet para recuperação de e-mails e posterior envio de mensagens
Clone o repositório:
git clone https://github.com/jldsilva/InvoiceReminder.git
cd InvoiceReminderRestaure os pacotes NuGet e compile o projeto:
dotnet restore
dotnet buildAntes de executar, configure os parâmetros de banco de dados e outros no arquivo de configuração (exemplo: appsettings.json):
{
"ProviderName": "Npgsql",
"appKeys": {
"googleOauthClientId": "CLIENT_ID",
"googleOauthClientSecret": "CLIENT_SECRET",
"telegramBotToken": "BOT_TOKEN"
},
"ConnectionStrings": {
"DatabaseConnection": "CONNECTION_STRING"
},
"JwtOptions": {
"Issuer": "ISSUER",
"Audience": "AUDIENCE",
"SecretKey": "SECRET_KEY"
}
}Nota: Nunca compartilhe suas credenciais em repositórios públicos dê preferência ao recurso de user secrets do Visual Studio ou VS Code.
Execute o projeto:
dotnet runEm ambiente development, a interface Rest API Scalar estará disponível para uso. Siga as instruções exibidas na tela para cadastrar clientes, notas fiscais e configurar os lembretes.
# Adicionar cliente
curl https://localhost:7104/api/user \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"id": "",
"name": null,
"email": null,
"password": null
}'
# Adicionar um scan de boleto
curl https://localhost:7104/api/scan_email \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"id": "",
"userId": "",
"invoiceType": 1,
"beneficiary": null,
"description": null,
"senderEmailAddress": null,
"attachmentFileName": null
}'
# Adicionar um job_schedule
curl https://localhost:7104/api/job_schedule \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"id": "",
"userId": "",
"cronExpression": null
}'Contribuições são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch com sua feature (
git checkout -b feature/nova-feature) - Commit suas alterações (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto está sob licença MIT.
Feito por jldsilva - Entre em contato para dúvidas ou sugestões!