projects
Aplicação web de gestão de associação
Uma aplicação web de gestão de associação para acompanhar associados, registrar doações, produzir sínteses anuais e gerar recibos fiscais por e-mail ou por correio.
Status: Em desenvolvimento ativo
Visão geral
Esta aplicação web foi concebida para responder a necessidades concretas de uma associação que acompanha associados, registra doações e precisa produzir recibos fiscais confiáveis.
O objetivo não é apenas centralizar as informações, mas também proteger o seu tratamento, manter rastreabilidade das ações sensíveis e facilitar o trabalho diário das pessoas que administram a associação.
Funcionalidades principais
A aplicação cobre várias necessidades operacionais:
- gestão das fichas de associados
- criação, modificação e exclusão de doações
- importação inicial de dados a partir de arquivos Excel
- síntese das doações por ano ou no conjunto dos anos
- filtragem e pesquisa nas listas
- separação de diferentes origens de doações
- exportação de dados, em especial para Excel e CSV
Uma atenção especial é dada ao acompanhamento das doações, com visões agregadas por associado, totais anuais ou acumulados e filtros úteis para localizar rapidamente uma campanha ou um conjunto de operações.
Recibos fiscais e mala direta
Uma das funções centrais da aplicação é a produção de recibos fiscais.
Ela permite:
- gerar um recibo fiscal em PDF para uma doação individual ou para o conjunto das doações de um associado em determinado ano
- enviar esses recibos por e-mail quando o doador possui endereço registrado
- preparar um fluxo de correio para as pessoas sem e-mail
- produzir lotes de PDF para impressão
- manter um registro dos envios e um registro das impressões
Esse ponto é importante porque uma associação precisa poder justificar o que foi gerado, enviado, impresso ou reinicializado, especialmente quando estão em jogo documentos fiscais.
Segurança e dados sensíveis
Como os dados tratados são sensíveis, o projeto integra várias camadas de proteção.
A autenticação se apoia em:
- sessões seguras no lado do servidor
- cookies configurados em modo estrito
- exigência de HTTPS em produção
- proteção
CSRFnas ações não seguras - um mecanismo simples anti força bruta na página de login
A autorização é gerida por papéis:
admineditorviewer
Algumas rotas, como as páginas de administração ou certas operações de reinicialização, são reservadas ao nível admin. Outras funções de gestão diária ficam acessíveis aos perfis admin e editor.
A aplicação também mantém um histórico de conexões:
- logins bem-sucedidos e falhos
- endereço IP
- agente do usuário
- papel associado
- motivo de falha quando aplicável
Isso fornece uma base útil para auditoria, diagnóstico e monitoramento de acessos não autorizados. Procedimentos regulares de backup da base de dados complementam esse dispositivo para reduzir o risco de perda de dados e facilitar a retomada da operação.
Logs e supervisão
O projeto vai além dos logs básicos da aplicação.
A produção prevê uma cadeia centralizada de supervisão e journalização adaptada ao acompanhamento:
- dos eventos de autenticação
- dos acessos negados
- das ações web sensíveis
- de parte das operações ligadas aos dados
Esse conjunto é particularmente relevante para uma aplicação associativa que manipula informações pessoais, valores de doações e documentos fiscais.
Tecnologias utilizadas
A aplicação se apoia em uma base técnica relativamente simples, mas sólida:
- um backend web Python
- renderização HTML no lado do servidor
- uma camada de acesso a dados adaptada aos tratamentos de negócio
- uma base de dados relacional em produção
- um ambiente local leve para alguns testes ou usos de desenvolvimento
- migrações de esquema controladas
- execução conteinerizada
- ferramentas dedicadas à geração de PDF
- cobertura de testes automatizados
A interface permanece deliberadamente sóbria e orientada à administração, com páginas de lista, formulários e visões de journal adaptadas ao uso interno.
Desenvolvimento e operação
O desenvolvimento é pensado para uso em ambiente Linux, com contêineres de desenvolvimento e uma separação clara entre os contextos dev, test e prod.
O fluxo inclui em especial:
- um ambiente de desenvolvimento reproduzível
- contêineres para a aplicação e a base de dados
- migrações de esquema para evoluir a base de forma limpa
- scripts de inicialização de usuários e tipos de doação
- importação de conjuntos de dados de trabalho
- procedimentos regulares de backup da base de dados
- testes unitários e testes mais sensíveis sobre a base de dados
A produção visa um ambiente Linux, com uma arquitetura conteinerizada que separa:
- a aplicação web
- a base de dados
- os serviços de terminação web segura
- os mecanismos de backup e supervisão
Essa organização favorece uma implantação mais controlada, uma manutenção mais simples e uma melhor clareza das responsabilidades técnicas.
Público-alvo
Esse tipo de aplicação é destinado a associações que precisam de:
- uma base centralizada de associados
- acompanhamento confiável das doações
- produção controlada de recibos fiscais
- separação clara dos papéis de usuário
- melhor rastreabilidade dos acessos e das ações sensíveis
Ela também pode servir como base para outras aplicações internas nas quais confiabilidade, confidencialidade e rastreabilidade sejam mais importantes que a sofisticação da interface.
Para qualquer pedido de informação, evolução, extensão ou desenvolvimento de uma aplicação baseada neste mesmo princípio, entre em contato pelo endereço jacques[dot]grelet[at]gmail[dot]com.