Live · 2025
Souqa
Cross-platform e-commerce app at souqa.ai. I solely built the mobile client and contributed backend work on products, auth, wishlist, discounts, and account deletion.
Sole mobile engineer; backend contributor
- React Native
- Products API
- Auth / OTP
- Wishlist
Problem
Souqa needed a phone-shaped marketplace client and API changes that the app actually called — discounts, favourites, OTP by email or phone, account deletion — without treating the whole backend as one person’s system.
What I built
- Owned the React Native app end to end: screens, navigation, and the client against the marketplace API.
- Contributed backend changes the mobile path depended on: product discounts, wishlist/favourites, OTP identifier, share proxy, and account deletion.
Architecture
flowchart LR app[React Native app] --> api[Marketplace API] api --> products[Products and discounts] api --> auth[Auth and OTP] api --> wishlist[Wishlist]
Outcomes
- A live mobile product at souqa.ai.
- Backend PRs for discount-value and delete-user-account, plus wishlist, OTP, share, and product-resource fixes recorded in the contribution log.
Mobile (what I owned)
I solely built the Souqa cross-platform mobile app in React Native. The product is an AI e-commerce client: browse, product detail, auth, wishlist, and the rest of a marketplace on a phone.
That is the lead story. I am not claiming store rankings or a user count. The live app is the artifact.
The client talks to a marketplace API I did not own in full. When the app needed a field, an identifier, or a destructive action, I went into the backend and made those paths real.
Backend (what I contributed)
I contributed slightly to the development of the Backend of Souqa App. Commits and PRs I authored or merged (Aug–Dec 2025) include:
- Product discounts —
feat/discount-value(PR #10): discount on the product table, migration, and discount price attribute. - Account deletion —
feat/delete-user-account(PR #3). - Wishlist / favourites —
is_favouriteon products, wishlist delete by product id, auth-user and model-access cleanups around those paths. - OTP — verify-OTP request accepts email or phone as the identifier.
- Share — endpoint that proxies share functionality through to the app.
- Product API hygiene — pagination after the product resource, nullable product id and seller email,
is_returnable, ratings average (reduceinstead ofsum), seed images.
No public GitHub link. The backend lives in a private org repo.