dar-alatta / README.md

Dar Al Atta

Dar Al Atta's application and website

Last updated: 4/16/2026GitHubDar Al Atta

Dar Al Atta

A modern, scalable mobile application for streamlining community services, volunteer engagement, and donation processes for the Dar Al Atta charity.

Problem Statement

The current Dar Al Atta platform suffers from service instability, poor scalability, and a fragmented user experience. Key pain points include:

  • Frequent service outages (SMS and Thawani integrations).
  • Cumbersome and multi-step donation process.
  • Manual and inefficient complaint handling.
  • Lack of streamlined volunteer engagement tools.

This project aims to address these issues with a new, modern solution that is robust, scalable, and user-centric.

Supporting documents

  1. Product brief
  2. Features list
  3. System design
  4. Backend document
  5. Frontend document
  6. Strapi document
  7. Features Implementations
  8. Postman collection
  9. Building android app
  10. Building ios app
  11. Production deployment instructions

Getting started

Make sure to check the Developer Workflow Guide before getting started.

Pre-requisites

Project setup

Clone the repository

git clone https://github.com/rihal-om/dar-alatta.git
cd dar-alatta

Running the app locally

  1. Make sure to copy credentials.json to ./dar-alatta/server/cedentials.json (file exists in vaultwarden)

  2. Run all the services:

docker compose up -d --build
  1. Navigate to the client directory:
cd ./client
  1. Based on your environement run (can be skipped if you don't want to run the app):
pnpm android
# or
pnpm ios
  1. Populate Strapi
# 1. Copy the exported backup (check the next step to see how to export strapi's data)
# NOTE: if the file is mounted to the container, no need to copy it.
docker compose cp ./config/strapi/init.tar.gz.enc strapi:/opt/app/

# 2. Import the backup (this will erase all strapi's data)
docker compose exec strapi yarn strapi import --force --file init.tar.gz.enc --key dar-alatta

Note the --key dar-alatta part. This is the key that was used to encrypt the backup. Follow the next section to know more.

  1. Exporting strapi's data (optional):
# 1. Export the file (the resulted file will be named export.tar.gz.enc)
docker compose exec strapi yarn strapi export --file export --key dar-alatta

# 2. Copy the exported backup in case you want to replace the backup we are storing in the repo
docker compose cp strapi:/opt/app/export.tar.gz.enc ./config/strapi/init.tar.gz.enc
  1. Once the application is running navigate to:
# Backend
http://server:8081
# Strapi (email: test@rihal.om) (password:test123!)
http://localhost:1337
# Website
http://localhost:3000
  1. The API logs, metrics, and traces are exposed to Grafana using OpenTelemetry. To check the grafana dashboard, navigate to http://localhost:3000

Tech Stack

CategoryToolDescription
FrontendReact NativeMobile UI framework (via Expo)
FrontendNext JSWebsite UI framework
BackendGoServer-side language/framework
CMSStrapiHeadless content management system
DatabasePostgreSQLRelational database
ContainerizationDockerContainer platform
CI/CDEAS WorkflowsMobile app build and deployment tool

Project Team

NameRoleGitHub
Mohamed Al-RasbiProject Lead@mohdrasbi
Miqdad AliBackend Developer@miqdad-ali
Omar AlhendiLead Frontend Dev@omar-alhendi
Samya AlyaarbiFrontend Developer@samiya-alyaaribi
Reem AlqarniFrontend Developer@ireemalqarni
Omar AlsuleimaniFullstack Developer@omar-alsuleimani

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.

Happy coding!