jadawel / README.md
Jadawel
Jadawel: A centralized solution for streamlined collection, storage, and analysis of corporate data.
Jadawel
Overview
Problem Statement
Jadawel enables the centralized collection, storage, and analysis of all corporate data. It also provides a single location where all the data are stored and control access to the targeted info by providing access to authorized users only.
Product Docs / Links
- Feature list
- Feature API Docs
- Production deployment instructions
- Developer Workflow guide
- Jadawel UI/UX Design
General Project Architecture

Getting started
Prerequisites
- Docker (v24.0.2)
- Docker compose
Project setup
Clone the repository
git clone git@github.com:rihal-om/jadawel.git
cd jadawel
Setting Dcreds/Environment Variables
- Set up
~/.npmrcfile to pull private NPM packages. Click here for instructions. - Set up
.DCredsfolder in the home directory. - Set up the following files inside
.DCreds.keycloak_user: will contain keycloak user..keycloak_pass: will contain keycloak password..keycloak_pg_user: will contain keycloak PostgreSQL DB user..keycloak_pg_pass: will contain keycloak PostgreSQL DB password..pg_user: will contain server PostgreSQL DB user..pg_pass: will contain server PostgreSQL DB password..minio_root_user: will contain minio user name..minio_root_pass: will contain minio user password.
Running the app locally without AI
- Run docker-compose to start the application
docker-compose up -d
- Populate the database with sample data
# Dummy data
make populate
- Once the application is running, open your browser and navigate to:
# Frontend
http://localhost:3000
# Server
http://localhost:8081/api
# Keycloak
http://localhost:8080/auth
Running the app locally with AI
- Run the .sh file
download_models.shpresent inside jadawel folder itself
./download_models.sh
if you are unable to download the models using the script, you can download from the following link :
https://rihalom598-my.sharepoint.com/:u:/g/personal/sumit_singh_rihal_om/EaaTThDLG59IjRvIUt9TqhMBZJZP62PtCf4pk8d7K_-9hg?download=1 \
- Create folder
huggingfacewithin jadawel and place the downloaded models to the folder
Clone the repository
git clone git@github.com:rihal-om/JadawelAI.git
cd JadawelAI
Setting Environment Variables
To set environment variables for this project located in the your/folder/path directory, follow these steps:
- Create a
.envfile in the/JadawelAI/airflow/flows/directory - Add your variables to the .env file:
OPENAI_API_KEY=
JADAWEL_API_KEY=
- Run docker-compose to start the application
docker-compose up -d
- Once the application is running, open your browser and navigate to:
# FastAPI docs
http://localhost:8018
# Airflow
http://localhost:8087
To reset ML Airflow, run:
make reset-ml
Tech Stack
| Category | Tool | Description |
|---|---|---|
| Backend | GO | API Server |
| Frontend | React | UI Library/Framework |
| Cache | Redis | Cache & queue |
| Database | PostgreSQL | Relational DB |
| Object Storage | Minio | File storage |
| Authentication | Keycloak | Auth provider |
| AI | Python/Airflow | OpenAPI / AI models |
| Containerization | Docker | Container platform |
| Proxy | Nginx | Proxy server |
| CI/CD | GitHub Actions | Workflow automation |
Redis
- Redis is used in the auth middleware as a key-value store to fetch and update authentication keys dynamically during key rotation as well as synchronizing subscriptions
Project Team
| Name | Role | GitHub |
|---|---|---|
| Hussain Al Ajmi | Project Manager | @htajmi |
| Amna Al Qadri | Team Lead / BE Developer | @sc0des |
| Ali Al Harrasi | FE Developer | @alialharassi1 |
| Javeria Muqtadir | UX/UI Designer | @jayyasyed |
Feel free to reach out to any of us for questions, feedback, or collaboration opportunities. We are always open to discussing new ideas and improvements for the project.