projects
Association Management Web Application
A web application for association management used to track members, record donations, produce yearly summaries, and generate tax receipts by email or postal mail.
Status: In active development
Overview
This web application was designed to answer practical needs within an association that manages members, records donations, and must produce reliable tax receipts.
The goal is not only to centralize information, but also to secure its processing, keep traceability for sensitive actions, and simplify the daily work of the people running the association.
Main features
The application covers several operational needs:
- member record management
- donation creation, update, and deletion
- initial data import from Excel files
- donation summaries by year or across all years
- filtering and search across lists
- separation of several donation sources
- data export, especially to Excel and CSV
Particular care is given to donation tracking, with aggregate views by member, yearly or cumulative totals, and filters that help quickly retrieve a campaign or a set of operations.
Tax receipts and mail merge workflows
One of the core responsibilities of the application is tax receipt production.
It can:
- generate a PDF tax receipt for a single donation or for all donations made by one member in a given year
- send those receipts by email when the donor has an address on file
- prepare a postal workflow for people without email
- produce PDF bundles for printing
- keep both sending and printing journals
This matters because an association must be able to justify what was generated, sent, printed, or reset, especially when fiscal documents are involved.
Security and sensitive data
Because the handled data is sensitive, the project includes several protection layers.
Authentication relies on:
- server-side secured sessions
- strict cookie settings
- HTTPS enforcement in production
CSRFprotection on non-safe actions- a simple anti brute-force mechanism on the login page
Authorization is role-based:
admineditorviewer
Some routes, such as administration pages or selected reset operations, are restricted to the admin level. Other day-to-day management functions are available to admin and editor users.
The application also keeps a connection history:
- successful and failed logins
- IP address
- user agent
- associated role
- failure reason when relevant
This provides a useful basis for auditing, diagnostics, and monitoring unauthorized access. Regular database backup procedures complement this setup to reduce the risk of data loss and support operational recovery.
Logging and monitoring
The project goes beyond basic application logs.
Production includes centralized logging and monitoring adapted to tracking:
- authentication events
- denied access
- sensitive web actions
- part of the operations related to the data
This is particularly relevant for an association application handling personal information, donation amounts, and fiscal documents.
Technologies
The application is built on a relatively simple but solid technical base:
- a Python web backend
- server-side HTML rendering
- a data access layer suited to business processing
- a relational database in production
- a lightweight local environment for some tests or development uses
- controlled schema migrations
- containerized execution
- dedicated tools for PDF generation
- automated test coverage
The interface intentionally stays sober and administration-oriented, with list pages, forms, and journal views adapted to internal use.
Development and operations
Development is organized for use in a Linux environment, with development containers and a clear separation between dev, test, and prod.
The workflow notably includes:
- a reproducible development environment
- containers for the application and the database
- schema migrations to evolve the database cleanly
- scripts to initialize users and donation types
- import of working datasets
- regular database backup procedures
- unit tests and more sensitive tests on the database
Production targets a Linux environment, with a containerized architecture separating:
- the web application
- the database
- secure web termination services
- backup and monitoring mechanisms
This organization supports better-controlled deployment, simpler maintenance, and clearer technical responsibilities.
Intended audience
This kind of application is intended for associations that need:
- a centralized member database
- reliable donation tracking
- well-controlled tax receipt production
- clear separation of user roles
- better traceability of access and sensitive actions
It can also serve as a base for other internal applications where reliability, confidentiality, and traceability matter more than interface sophistication.
For any request for information, extension work, customization, or development of an application based on the same principles, contact me at jacques[dot]grelet[at]gmail[dot]com.