jadawel / README.md

Jadawel

Jadawel: A centralized solution for streamlined collection, storage, and analysis of corporate data.

Last updated: 4/16/2026GitHubjadawel.dev.rihal.om/Jadawel

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.

  1. Feature list
  2. Feature API Docs
  3. Production deployment instructions
  4. Developer Workflow guide
  5. Jadawel UI/UX Design

General Project Architecture

jadawel architecture

Getting started

Prerequisites

Project setup

Clone the repository

git clone git@github.com:rihal-om/jadawel.git
cd jadawel

Setting Dcreds/Environment Variables

  1. Set up ~/.npmrc file to pull private NPM packages. Click here for instructions.
  2. Set up .DCreds folder in the home directory.
  3. 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

  1. Run docker-compose to start the application
docker-compose up -d
  1. Populate the database with sample data
# Dummy data
make populate

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

  1. Run the .sh file download_models.sh present 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 \
  1. Create folder huggingface within 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:

  1. Create a .env file in the /JadawelAI/airflow/flows/ directory
  2. Add your variables to the .env file:
OPENAI_API_KEY=
JADAWEL_API_KEY=
  1. Run docker-compose to start the application
docker-compose up -d
  1. 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

CategoryToolDescription
BackendGOAPI Server
FrontendReactUI Library/Framework
CacheRedisCache & queue
DatabasePostgreSQLRelational DB
Object StorageMinioFile storage
AuthenticationKeycloakAuth provider
AIPython/AirflowOpenAPI / AI models
ContainerizationDockerContainer platform
ProxyNginxProxy server
CI/CDGitHub ActionsWorkflow 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

NameRoleGitHub
Hussain Al AjmiProject Manager@htajmi
Amna Al QadriTeam Lead / BE Developer@sc0des
Ali Al HarrasiFE Developer@alialharassi1
Javeria MuqtadirUX/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.