Skip to main content

Recommended Features

Features recommended to complete the AYTS business model. Ordered by priority.


Priority 1 — Critical (Pre-Launch)

1. Admin Vendor Applications Page

What: A page at /admin/applications for admins to review, approve, or reject vendor applications submitted through the storefront's /vendor/onboard form.

Why: Without this, no vendor who submits an application can ever be approved. The API is fully built.

Effort: ~4 hours
Files to create: ayts-admin/app/(admin)/applications/page.tsx
API: GET /api/admin/applications, PATCH /api/admin/applications/:id/review


What: A proper footer with navigation links for Privacy, Terms, Contact, and social media.

Why: Required for any consumer app. Currently the page ends with a plain text line. Trust signal for customers.

Effort: ~1 hour
Files to create: ayts-fe/components/footer.tsx
Add to: ayts-fe/app/layout.tsx

// Minimum viable footer
export function Footer() {
return (
<footer className="border-t py-8 mt-16">
<div className="container mx-auto flex flex-wrap justify-between gap-4">
<p className="text-sm text-muted-foreground">
© 2026 AYTS — At Your Tayo Service
</p>
<nav className="flex gap-4 text-sm">
<Link href="/privacy">Privacy Policy</Link>
<Link href="/terms">Terms of Service</Link>
<Link href="/about">Contact Us</Link>
</nav>
</div>
</footer>
);
}

3. GCash / Maya Payment Selector

What: Payment method radio group in the cart checkout page that allows customers to choose GCash or Maya (in addition to COD).

Why: Currently checkout is hardcoded to COD only. The PayMongo API for GCash and Maya is fully implemented.

Effort: ~3 hours
Files to modify: ayts-fe/app/cart/page.tsx

Key change:

<RadioGroup value={paymentMethod} onValueChange={setPaymentMethod}>
<RadioGroupItem value="cash_on_delivery">Cash on Delivery</RadioGroupItem>
<RadioGroupItem value="gcash">GCash</RadioGroupItem>
<RadioGroupItem value="maya">Maya</RadioGroupItem>
</RadioGroup>

// After order creation:
if (result.checkoutUrl) {
window.location.href = result.checkoutUrl; // PayMongo redirect
}

Priority 2 — Before Soft Public Launch

4. Payment Status Page

What: A page at /payment/status?orderId={id} shown after returning from PayMongo. Checks payment status and shows success or failure.

Why: After GCash/Maya redirect, customers land back with no indication of what happened. This closes the loop.

Effort: ~2 hours
Files to create: ayts-fe/app/payment/status/page.tsx


5. Email Notifications for Orders

What: Transactional emails to customers when their order is confirmed, being prepared, out for delivery, and delivered.

Why: email.ts exists with Nodemailer/Resend integration. Just needs wiring into the order status update handlers.

Effort: ~3 hours
Files to modify: ayts-api/src/routes/orders-simple.ts


6. Refund Admin UI

What: A refund button + amount/reason form in the admin order detail page.

Why: PATCH /api/payments/refund/:id/process is implemented. Admins currently can't trigger refunds without direct API calls.

Effort: ~2 hours
Files to modify: ayts-admin/app/(admin)/orders/[id]/page.tsx


7. Admin Settings API Fix

What: Implement GET /api/admin/settings and PATCH /api/admin/settings with a platform_settings Supabase table.

Why: The settings page loads but returns 404. Admins can't save any platform configuration.

Effort: ~3 hours
Files to modify: ayts-api/src/routes/admin.ts + Supabase migration


Priority 3 — Post-Launch Improvements

8. Notification Inbox (Customer)

What: A bell icon in the navbar that opens a dropdown of recent notifications (order updates, promotions).

Why: Push notification subscriptions work but there's no UI inbox to view past notifications.

Effort: ~4 hours


9. Contact / FAQ Page

What: A /contact page with a contact form (POST /api/public/contact) and an FAQ accordion.

Why: Customers need a way to reach support. Required for building trust and for app store submission.

Effort: ~3 hours
Files to create: ayts-fe/app/contact/page.tsx


10. User Pagination (Admin)

What: Paginate the admin users table (currently loads all users on one page).

Why: Will break at scale. Already has limit/offset support in the API.

Effort: ~1 hour
Files to modify: ayts-admin/app/(admin)/users/page.tsx


11. CSV Export (Admin)

What: Export buttons for orders and users tables to CSV.

Why: Needed for accounting, compliance reporting, and customer support workflows.

Effort: ~3 hours


12. Admin Audit Log

What: Track all admin actions (who verified a store, who banned a user, etc.) with timestamps.

Why: Accountability and compliance. Required for any business with multiple admins.

Effort: ~5 hours (DB table + middleware + UI)


Feature Priority Matrix

FeatureBusiness ImpactEffortPriority
Admin Vendor Applications🔴 Blocks onboardingSmallP1
Footer🔴 Trust/legalSmallP1
GCash/Maya selector🔴 RevenueMediumP1
Payment status page🟠 UXSmallP2
Email notifications🟠 RetentionMediumP2
Refund UI🟠 OperationsSmallP2
Settings API🟠 OperationsMediumP2
Notification inbox🟡 EngagementMediumP3
Contact/FAQ🟡 SupportSmallP3
User pagination🟡 ScaleSmallP3
CSV export🟡 OperationsMediumP3
Audit log🟡 ComplianceLargeP3