An open API service indexing awesome lists of open source software.

https://github.com/aam-digital/ndb-core

Easy-to-use case management web app for NGOs anywhere in the world (Progressive Web App)
https://github.com/aam-digital/ndb-core

case-management docker ngo offline-first pwa

Last synced: about 1 month ago
JSON representation

Easy-to-use case management web app for NGOs anywhere in the world (Progressive Web App)

Awesome Lists containing this project

README

          

[![Release Version](https://img.shields.io/github/release/Aam-Digital/ndb-core.svg)](https://github.com/Aam-Digital/ndb-core/releases)
[![DPG Badge](https://img.shields.io/badge/Verified-DPG-3333AB?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMzEiIGhlaWdodD0iMzMiIHZpZXdCb3g9IjAgMCAzMSAzMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0LjIwMDggMjEuMzY3OEwxMC4xNzM2IDE4LjAxMjRMMTEuNTIxOSAxNi40MDAzTDEzLjk5MjggMTguNDU5TDE5LjYyNjkgMTIuMjExMUwyMS4xOTA5IDEzLjYxNkwxNC4yMDA4IDIxLjM2NzhaTTI0LjYyNDEgOS4zNTEyN0wyNC44MDcxIDMuMDcyOTdMMTguODgxIDUuMTg2NjJMMTUuMzMxNCAtMi4zMzA4MmUtMDVMMTEuNzgyMSA1LjE4NjYyTDUuODU2MDEgMy4wNzI5N0w2LjAzOTA2IDkuMzUxMjdMMCAxMS4xMTc3TDMuODQ1MjEgMTYuMDg5NUwwIDIxLjA2MTJMNi4wMzkwNiAyMi44Mjc3TDUuODU2MDEgMjkuMTA2TDExLjc4MjEgMjYuOTkyM0wxNS4zMzE0IDMyLjE3OUwxOC44ODEgMjYuOTkyM0wyNC44MDcxIDI5LjEwNkwyNC42MjQxIDIyLjgyNzdMMzAuNjYzMSAyMS4wNjEyTDI2LjgxNzYgMTYuMDg5NUwzMC42NjMxIDExLjExNzdMMjQuNjI0MSA5LjM1MTI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==)](https://digitalpublicgoods.net/r/aam-digital)
[![User Support Center](https://img.shields.io/badge/User%20Support%20Center-available-blue)](https://chatwoot.help/hc/aam-digital/en)

![English](https://img.shields.io/poeditor/progress/740876/en?token=56acaf6808f07eb52c5b39a3abea19a7)
![French](https://img.shields.io/poeditor/progress/740876/fr?token=56acaf6808f07eb52c5b39a3abea19a7)
![Italian](https://img.shields.io/poeditor/progress/740876/it?token=56acaf6808f07eb52c5b39a3abea19a7)
![German](https://img.shields.io/poeditor/progress/740876/de?token=56acaf6808f07eb52c5b39a3abea19a7)

[![Code Climate](https://codeclimate.com/github/Aam-Digital/ndb-core/badges/gpa.svg)](https://codeclimate.com/github/Aam-Digital/ndb-core)
[![Test Coverage](https://api.codeclimate.com/v1/badges/4e4a7a6301064019b2c9/test_coverage)](https://codeclimate.com/github/Aam-Digital/ndb-core/test_coverage)
[![Known Vulnerabilities](https://snyk.io/test/github/Aam-Digital/ndb-core/badge.svg)](https://snyk.io/test/github/Aam-Digital/ndb-core)
[![Developer Guides](https://img.shields.io/badge/Tutorial%20%26%20Guides-available-blue)](https://aam-digital.github.io/ndb-core/documentation/additional-documentation/overview.html)

# Aam Digital

_Enabling social organizations digitally to transform lives._

Aam Digital is an easy-to-use case management software for the social sector that improves the effectiveness and transparency of work with beneficiaries in the field.

> For more information about the software and an open demo system visit **[www.aam-digital.com](https://www.aam-digital.com)**.

> For more information about the code including guides see the separate **[Developer Documentation](https://aam-digital.github.io/ndb-core/documentation/additional-documentation/overview.html)**

---

# Installation, Use & Deployment

You can directly run the system using Docker.
More information in our [Aam-Digital/ndb-setup repository](https://github.com/Aam-Digital/ndb-setup/).
In that case you do not have to clone this repository and install all the dependencies as everything is packaged into the docker image already.

The Aam Digital platform can be customized for different use cases through a flexible configuration file. This doesn't require changes to the generic platform code base in this repository:
![image](https://github.com/Aam-Digital/ndb-core/assets/1682541/c9b08c0b-bb60-464d-b39f-703ae2995213)

The overall architecture and tech stack including backend services looks like this:
![image](https://github.com/Aam-Digital/ndb-core/assets/1682541/557adb8a-df93-4c83-b547-8a5e28650324)

# Development

## Setup

1. This project depends on [npm (NodeJS)](https://www.npmjs.org/) to setup its dependencies. Please make sure you have npm installed.
2. `git clone` this repository to get all the code with its configuration and requirements.
3. `npm install` the dependencies (external libraries and packages)
4. `npm run start` to run your local dev server and get started.

By default, the app is started with a "mock" session, generating demo data into an in-memory database.
You can change this mode by editing the environment.ts
(or create a file assets/config.json to overwrite settings; that file is on the .gitignore list).

If you need to develop in an advanced environment including local backend services,
please refer to the instructions at [Aam-Digital/aam-services/docs/developer](https://github.com/Aam-Digital/aam-services/tree/main/docs/developer).

## Documentation

Our detailed [Developer Documentation](https://aam-digital.github.io/ndb-core/documentation/additional-documentation/overview.html)
provides tutorials, guides, concepts and an API reference.

## Translations (internationalization; i18n)

Aam Digital is available in multiple languages.
We translate the terms using POEditor: [Join the translation team](https://poeditor.com/join/project/CGn4IA7Ilz)

To commit latest translations to the codebase, trigger the manual GitHub Action in the repository.

## Code Style

We use _prettier_ to enforce a consistent formatting of code to make the project easier to read.
The project is set up with a git pre-commit hook to automatically format your commits according to these rules.

## Using Angular CLI

This project is built upon [Angular](https://angular.io/).
If you are unfamiliar with the framework and Angular CLI go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md) or use `ng help`.

## Build a docker image locally

Deployment on a server can be done through a docker image, our [ndb-setup project](https://github.com/Aam-Digital/ndb-setup) provides tools and a starting point to run the system using docker.
For more information about Docker, please refer to [their official documentation](https://docs.docker.com/get-started/).

To learn more about the build process, see [/build](./build/README.md).

---

# AI-Assisted Development

This project supports AI-assisted development through GitHub Copilot, Claude Code, and CodeRabbit.

| Tool | Usage |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **GitHub Copilot** (VS Code) | Code generation, chat, agent mode — reads `AGENTS.md`. Use **Plan mode** for architecture planning before implementation. |
| **Claude Code** (CLI) | Interactive coding assistant — reads `CLAUDE.md` → `AGENTS.md` |
| **CodeRabbit** (GitHub) | Automated PR reviews — configured via `.coderabbit.yaml`. Add the label **"Ready for Review"** to trigger a review (works in draft mode too; removing the label stops further auto-reviews). |

## Agents

Custom agents are defined in `.claude/agents/` and can be invoked from Copilot chat or Claude Code:

| Agent | Purpose | Recommended Tool |
| ------------------------- | ----------------------------------------------------- | -------------------------------------- |
| `business-analyst` | Refine requirements into structured, testable docs | Copilot chat or Claude Code |
| `troubleshooter` | Debug issues using Sentry, devtools, and stack traces | Copilot/Claude Code with Sentry MCP |
| `implementation-planner` | Design technical approach and architecture | Copilot **Plan mode** or Claude Code |
| `implementation-executor` | Full implementation workflow with tests | Copilot agent mode or Claude Code |
| `refactorer` | Code analysis and refactoring suggestions | CodeRabbit (automatic) + manual prompt |
| `e2e-test-writer` | Generate Playwright e2e tests | Copilot agent mode or Claude Code |

## MCP Servers

MCP servers are configured in `.vscode/mcp.json`:

- **angular-cli** — Angular CLI operations, schematics, component generation
- **chrome-devtools** — Runtime debugging, DOM inspection, console access
- **sentry** — Production error data, issue investigation (requires `SENTRY_AUTH_TOKEN` env var)
- **github** — Issues, PRs, diffs, repository context (requires `GITHUB_PERSONAL_ACCESS_TOKEN` env var)

## Tips for Effective Prompting

- Be specific about the entity/component you're working with
- Reference existing patterns and similar implementations
- Let agents read relevant files first before making changes
- Use the agent files as starting points for common workflows

---

# Contribute

Our project is completely run by volunteers. Contributions welcome!

We are trying hard to make it easy for you to join in.
As a starting point, please refer to our **[CONTRIBUTING](./CONTRIBUTING.md)** page.