Aam-Digital / ndb-core

Easy-to-use case management web app for NGOs anywhere in the world.
http://www.aam-digital.com
GNU General Public License v3.0
58 stars 19 forks source link
case-management docker ngo offline-first pwa

Release Version Build Status Code Climate Test Coverage E2E Tests Guides Known Vulnerabilities

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.

For more information about the code including guides see the separate Developer Documentation


Installation, Use & Deployment

You can directly run the system using Docker. More information in our Aam-Digital/ndb-setup repository. 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

The overall architecture and tech stack including backend services looks like this: image

Development

Setup

  1. This project depends on npm (NodeJS) 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).

Use the dockerized local environment to run a fully synced app including backend services on your machine: https://github.com/Aam-Digital/aam-services/tree/main/docs/developer

Documentation

Our detailed Developer Documentation provides tutorials, guides, concepts and an API reference.

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. If you are unfamiliar with the framework and Angular CLI go check out the Angular CLI README or use use ng help. The following sections give you a brief overview.

Development server

Run npm run start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding (Generate new modules and components)

You can use Angular CLI to add new code to the project. Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|module.

Build

Run ng build -prod to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run npm run e2e to execute the end-to-end tests via Cypress in the terminal.

Run npm run e2e-open to execute the end-to-end tests via Cypress own User Interface.

Build a docker image locally

Deployment on a server can be done through a docker image, our ndb-setup project provides tools and a starting point to run the system using docker. For more information about Docker, please refer to their official documentation.

To learn more about the build process, see /build.


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 page.