dar-alatta / docs/features.md

Features List

Dar Al Atta's application and website

Last updated: 4/16/2026GitHubDar Al Atta

Features List

This document outlines the features of the application. Each feature is linked to its corresponding issues and outlines any technical or external dependencies.

DomainFeatureIssuesDependencies
Users (API)Authenticate user using Google, Microsoft, Apple, and phoneExternal: Firebase Auth, OAuth providers (Google, Microsoft, Apple)
Users (API)Support anonymous authenticationExternal: Firebase Auth
Users (API)Delete user accountExternal: Firebase Auth
Users (Mobile)Login page UIExternal: Firebase Auth
Users (Mobile)Sign up page UI
Users (Mobile)User profile page UI
Users (Mobile)Notifications page UI
Users (Mobile)Recurring payments page UI
Users (Mobile)Auth flow with Firebase (Google login)External: Firebase Auth, Google Sign-In SDK
Users (Mobile)Support anonymous authenticationExternal: Firebase Auth
Users (Mobile)Support Microsoft loginExternal: Microsoft OAuth Provider, Firebase integration
Users (Mobile)Support Apple loginExternal: Apple Sign-In SDK, Firebase integration
Users (Mobile)Update and get user’s profile (POST /login)External: Firebase Auth, REST API
Users (Mobile)Delete user accountExternal: Firebase Auth, REST API
Users (Admin)List application usersExternal: Strapi CMS
Users (Admin)Block users (if needed)External: Strapi CMS, Admin middleware logic
Categories (API)Return list of categoriesTechnical: REST API
Categories (Mobile)Categories UI in projects page
Categories (Mobile)(API) Return list of categoriesTechnical: REST API
Categories (Admin)CRUD categoriesExternal: Strapi CMS
Projects (API)List/search projects with pagination & sortTechnical: Search APIs, Pagination module
Projects (API)Return showcased projectsTechnical: Admin dashboard
Projects (API)Return urgent projectsTechnical: Admin dashboard
Projects (Mobile)Projects search UI + cards
Projects (Mobile)Project details UI
Projects (Mobile)Home page UI
Projects (Mobile)Show search results (API)Technical: Search API
Projects (Mobile)Show single project (API)Technical: Project Details API
Projects (Admin)CRUD projects (is urgent, is showcased)External: Strapi CMS
Payments (API)Create payment checkout (internal)External: Thawani API
Payments (API)Check checkout status (paid?, failed?)External: Thawani API
Payments (API)Refund a paymentTechnical: Admin dashboard
Payments (API)Return user’s payment methodsExternal: Thawani API
Payments (API)Create recurring paymentExternal: Thawani Recurring API, Scheduler
Payments (API)Cancel recurring paymentExternal: Thawani Recurring API
Payments (API)Support Apple PayExternal: Apple Pay SDK, Gateway support
Payments (API)Delete payment methodExternal: Thawani API
Payments (Mobile)Saved methods UI (profile)
Payments (Mobile)Saved methods UI (donating)
Payments (Mobile)Get saved methods (API)Technical: REST API
Payments (Mobile)Delete payment method (API)Technical: REST API
Donations (API)Create donation (calls checkout internally)Technical: Donation API, Payment API
Donations (API)Get donation’s receiptTechnical: Receipt API
Donations (API)List all user’s donationsTechnical: Donations service
Donations (API)Donate as giftTechnical: Gift API
Donations (Mobile)Send donation UI
Donations (Mobile)Donation history UI
Donations (Mobile)Gift donation UI
Donations (Mobile)Donations cart UI
Donations (Mobile)Send donation (API)Technical: Donation API
Donations (Mobile)Get all donations (API)Technical: Donation API
Donations (Mobile)Send a gift (API)Technical: Gift flow endpoint
Donations (Mobile)Get recurring donations (API)Technical: Recurring donation API
Donations (Mobile)Cancel recurring (API)Technical: Recurring donation API
Donations (Admin)List all donationsExternal: Strapi CMS
Donations (Admin)Refund a donation (if needed)Internal: Admin refund flow, Payment gateway
News (API)List/search newsTechnical: News search API
News (API)Return single news postTechnical: News detail API
News (Mobile)News UI in home page
News (Mobile)News list page UI
News (Mobile)News post UI
News (Mobile)Get news (API)Technical: News API
News (Mobile)Get single post (API)Technical: News API
News (Admin)CRUD newsExternal: Strapi CMS
News (Admin)Set status (draft, published)External: Strapi CMS
Ads (API)List/search adsTechnical: Ads API
Ads (Mobile)Ads UI in home page
Ads (Mobile)Get highlights ads (API)Technical: Ads API
Ads (Admin)CRUD adsExternal: Strapi CMS
Ads (Admin)Set status (draft, published)External: Strapi CMS
Volunteering (API)List/search eventsTechnical: Events API
Volunteering (API)Submit volunteer requestTechnical: Volunteer request endpoint
Volunteering (API)Get user’s volunteer requestsTechnical: User-event relation API
Volunteering (Mobile)Events UI in home
Volunteering (Mobile)Volunteer request UI
Volunteering (Mobile)Get events highlights (API)Technical: Events API
Volunteering (Mobile)Submit volunteer request (API)Technical: Volunteer request API
Volunteering (Admin)CRUD eventsExternal: Strapi CMS
Volunteering (Admin)Manage volunteer requestsTechnical: Admin dashboard
Support (API)Submit refund requestTechnical: Support API
Support (API)Submit suggestionTechnical: Feedback API
Support (Mobile)Support page UI
Support (Mobile)Suggestions form UI
Support (Mobile)Submit refund/suggestion (API)Technical: Support API
Support (Admin)View refunds/suggestionsExternal: Admin dashboard
Support (Admin)Email notification on refund requestExternal: Email
Notifications (API)Push/email/WhatsApp notifications infraExternal: Email, WhatsApp/SMS APIs, Internal Notification
Notifications (Mobile)Notifications UI
Reports (Admin)Charts and reports for donationsTechnical: Admin dashboard reporting tools