$ cat ~/projects/ekleria/README.md

Ekleria

★ Featured

Church management SaaS

Data that cares for the congregation: health, finances and members in one panel.

Status
In production
Role
Architect & Full-Stack
Period
2024 — Actualidad
Client
Churches in Peru
View live demo ↗
En prod
serving real churches
1
score that prioritizes care
3
core modules

# Overview

Ekleria is a multi-tenant SaaS for church administration built on Django REST Framework and Angular 20. It handles membership, finances (tithes/offerings), groups and an analytics dashboard with a congregational 'health score' that combines attendance, engagement and giving to flag members at risk of disengaging. Every request is validated against the JWT and scoped to its congregation, keeping each church's data strictly isolated.

! The problem

Churches lose touch with members without a system that cross-references attendance, engagement and giving. Administration lives in physical books and scattered spreadsheets, with no view of the congregation's real state.

The solution

A panel that turns daily operations into actionable signals: the health score detects who to follow up with, finances bring transparency and the membership module centralizes each person's history. Multi-tenant to serve many churches from a single platform.

# Features

Congregational health score

Composite metric (attendance + engagement + giving) that prioritizes pastoral follow-up.

Transparent finances

Tithe/offering records, categories and exportable reports.

Membership management

Full per-person record: family, groups, attendance and history.

Analytics dashboard

Real-time KPIs with visualizations for the board.

Strict multi-tenancy

Every request is validated against the JWT and scoped to its congregation; strict isolation between churches.

# Architecture

Django REST Framework with a cross-cutting tenancy layer: each request is validated against the JWT claims and all queries are automatically scoped to the corresponding congregation. The Angular 20 + PrimeNG frontend consumes the API and renders the dashboard. Traefik routes and terminates TLS on a self-managed VPS.

Components
01 Angular 20 + PrimeNG Dashboard and management modules
02 Django REST Framework API, JWT-validated tenancy, auth
03 PostgreSQL Persistence with per-tenant isolation
04 Traefik Reverse proxy and automatic TLS

# Tech stack

Frontend
Angular 20PrimeNG 18RxJS
Backend
DjangoDRFPythonJWT
Datos
PostgreSQL
Infra
DockerTraefikVPS
Python 55%
TypeScript 40%
Otros 5%

# Learnings

  • A good product doesn't show data, it shows decisions: the health score was more valuable than ten charts.
  • Multi-tenant isolation is simple and effective if —and only if— it's always validated against the JWT on every request.
  • Django DRF hugely accelerates CRUD; the value is in the domain metrics, not the boilerplate.

# Roadmap

Automated pastoral follow-up reminders
Mobile app for members
Online donations

Useful for your business?

This solution can be adapted to your organization. Share the project or reach out to discuss it.

Let's talk →