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
2. Footer Component
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
| Feature | Business Impact | Effort | Priority |
|---|---|---|---|
| Admin Vendor Applications | 🔴 Blocks onboarding | Small | P1 |
| Footer | 🔴 Trust/legal | Small | P1 |
| GCash/Maya selector | 🔴 Revenue | Medium | P1 |
| Payment status page | 🟠 UX | Small | P2 |
| Email notifications | 🟠 Retention | Medium | P2 |
| Refund UI | 🟠 Operations | Small | P2 |
| Settings API | 🟠 Operations | Medium | P2 |
| Notification inbox | 🟡 Engagement | Medium | P3 |
| Contact/FAQ | 🟡 Support | Small | P3 |
| User pagination | 🟡 Scale | Small | P3 |
| CSV export | 🟡 Operations | Medium | P3 |
| Audit log | 🟡 Compliance | Large | P3 |