ndb-core
ndb-core copied to clipboard
Easy-to-use case management web app for NGOs anywhere in the world.
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:
The overall architecture and tech stack including backend services looks like this:
Development
Setup
- This project depends on npm (NodeJS) to setup its dependencies. Please make sure you have npm installed.
git clonethis repository to get all the code with its configuration and requirements.npm installthe dependencies (external libraries and packages)npm run startto 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.