# Architecture

## High level Architecture

![High level Architecture](/files/-MPEQ__yHBR3bkQz981E)

**mfund-server-app (NodeJS APIs):**

* Firebase is used in backend to revoke firebase authentication JWT token while logging out user from app.
* Using ExpressJS to create APIs.&#x20;
* Sequelize is used as ORM for PostgreSQL DB.

**mfund-api-service:**

* Contains all the repositories and api call for flutter app.
* Contains the definition of the functions responsible for OTP authentication through firebase authentication and uploading images on firebase storage.

**mfund-framework:**

* Contains BloCs, States and Events.

**mfund-common-modules:**

* Contains services, utils and common widget for both mfund-app and mfund-dashboard app.

#### mfund-dashboard-app:

The Admin dashboard has three main functions-

* Can add any number of organisations.
* Can view the details of all the investors.
* Can view total number of investors, total investments and total balance.
* Can create a new admin or change password of the current logged in admin.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://devanshixaviers.gitbook.io/mfund-documentation/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
