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.

Published on May 14, 2026

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
  • CSRF protection on non-safe actions
  • a simple anti brute-force mechanism on the login page

Authorization is role-based:

  • admin
  • editor
  • viewer

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.