dar-alatta / docs/features.md
Features List
Dar Al Atta's application and website
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.
| Domain | Feature | Issues | Dependencies |
|---|---|---|---|
| Users (API) | Authenticate user using Google, Microsoft, Apple, and phone | External: Firebase Auth, OAuth providers (Google, Microsoft, Apple) | |
| Users (API) | Support anonymous authentication | External: Firebase Auth | |
| Users (API) | Delete user account | External: Firebase Auth | |
| Users (Mobile) | Login page UI | External: 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 authentication | External: Firebase Auth | |
| Users (Mobile) | Support Microsoft login | External: Microsoft OAuth Provider, Firebase integration | |
| Users (Mobile) | Support Apple login | External: 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 account | External: Firebase Auth, REST API | |
| Users (Admin) | List application users | External: Strapi CMS | |
| Users (Admin) | Block users (if needed) | External: Strapi CMS, Admin middleware logic | |
| Categories (API) | Return list of categories | Technical: REST API | |
| Categories (Mobile) | Categories UI in projects page | ||
| Categories (Mobile) | (API) Return list of categories | Technical: REST API | |
| Categories (Admin) | CRUD categories | External: Strapi CMS | |
| Projects (API) | List/search projects with pagination & sort | Technical: Search APIs, Pagination module | |
| Projects (API) | Return showcased projects | Technical: Admin dashboard | |
| Projects (API) | Return urgent projects | Technical: 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 payment | Technical: Admin dashboard | |
| Payments (API) | Return user’s payment methods | External: Thawani API | |
| Payments (API) | Create recurring payment | External: Thawani Recurring API, Scheduler | |
| Payments (API) | Cancel recurring payment | External: Thawani Recurring API | |
| Payments (API) | Support Apple Pay | External: Apple Pay SDK, Gateway support | |
| Payments (API) | Delete payment method | External: 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 receipt | Technical: Receipt API | |
| Donations (API) | List all user’s donations | Technical: Donations service | |
| Donations (API) | Donate as gift | Technical: 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 donations | External: Strapi CMS | |
| Donations (Admin) | Refund a donation (if needed) | Internal: Admin refund flow, Payment gateway | |
| News (API) | List/search news | Technical: News search API | |
| News (API) | Return single news post | Technical: 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 news | External: Strapi CMS | |
| News (Admin) | Set status (draft, published) | External: Strapi CMS | |
| Ads (API) | List/search ads | Technical: Ads API | |
| Ads (Mobile) | Ads UI in home page | ||
| Ads (Mobile) | Get highlights ads (API) | Technical: Ads API | |
| Ads (Admin) | CRUD ads | External: Strapi CMS | |
| Ads (Admin) | Set status (draft, published) | External: Strapi CMS | |
| Volunteering (API) | List/search events | Technical: Events API | |
| Volunteering (API) | Submit volunteer request | Technical: Volunteer request endpoint | |
| Volunteering (API) | Get user’s volunteer requests | Technical: 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 events | External: Strapi CMS | |
| Volunteering (Admin) | Manage volunteer requests | Technical: Admin dashboard | |
| Support (API) | Submit refund request | Technical: Support API | |
| Support (API) | Submit suggestion | Technical: 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/suggestions | External: Admin dashboard | |
| Support (Admin) | Email notification on refund request | External: Email | |
| Notifications (API) | Push/email/WhatsApp notifications infra | External: Email, WhatsApp/SMS APIs, Internal Notification | |
| Notifications (Mobile) | Notifications UI | ||
| Reports (Admin) | Charts and reports for donations | Technical: Admin dashboard reporting tools |