UniHawk requires a proprietary EdTech platform to replace Wise Classroom and extend capabilities across tutoring, test preparation, and counselling/admissions workflows. The platform must support multi-country, multi-branch operations with strong governance, while maintaining the flexibility to white-label for future commercialization.
We propose a three-phase delivery model, with Phase 1 focused on achieving feature parity with Wise Classroom while introducing UniHawk-specific requirements (multi-branch governance, credits, parent billing, and counselling basics).
Phase 1 Development: USD $85,000
Timeline: 20 weeks development and pilot/rollout
Ongoing Support: 15% of development cost annually (post-stabilization)
Infrastructure: Estimated USD $500-1,000/month (scales with usage)
UniHawk has identified several strategic and operational constraints with the current Wise Classroom setup:
| Challenge | Impact | Our Solution |
|---|---|---|
| No Product Ownership | Limited control over roadmap, UX, and feature enablement | Full platform ownership with custom development capabilities |
| Limited Scope | Wise not designed for tutoring + test prep + counselling integration | Unified platform across all UniHawk programmes |
| Multi-Branch Governance | No country/branch hierarchy or governance controls | Multi-tenant architecture with country → branch → programme hierarchy |
| Student Uploads | Workflow limitations for homework/assignment submissions | Full student submission pipeline with version tracking |
| White-Label Potential | Cannot commercialize or white-label Wise | Built for multi-tenant SaaS with white-label capabilities |
We have aligned our delivery targets with your operational and strategic goals:
We recommend a modern, proven stack optimized for rapid development, scalability, and maintainability:
| Layer | Technology | Rationale |
|---|---|---|
| Frontend | React + Next.js 14 | Server-side rendering, excellent performance, SEO-ready, large ecosystem |
| Mobile Apps | React Native (Hybrid) | Code reuse with web, native performance, iOS + Android from single codebase |
| Backend | Next.js API Routes + Supabase | Unified deployment, PostgreSQL with RLS, real-time subscriptions, auth built-in |
| Database | PostgreSQL (Supabase) | Battle-tested, multi-tenant row-level security, JSON support, full-text search |
| Authentication | Supabase Auth | OAuth, magic links, role-based access control, audit trails |
| Storage | Supabase Storage + S3 | Scalable object storage for recordings, documents, uploads |
| Real-Time | Supabase Realtime | Live session updates, notifications, collaborative features |
| Hosting | Vercel (web) + Expo (mobile) | Global CDN, auto-scaling, zero-config deployments, excellent DX |
| Video | Zoom SDK | Existing UniHawk relationship, meeting lifecycle, recording retrieval |
| AI Services | OpenAI + Anthropic | Transcription (Whisper), summarization (GPT-4/Claude), future extensibility |
| Payments | Stripe (initial) + abstraction layer | Multi-currency, subscriptions, invoicing; swap to regional gateways later |
| Communications | SendGrid/Postmark + Twilio/MessageBird | Email deliverability + WhatsApp; provider-agnostic adapters |
| Monitoring | Sentry + LogRocket + Posthog | Error tracking, session replay, product analytics |
Platform delivered as independent, composable modules:
Post-Phase 1, UniHawk can choose to extend the platform with additional capabilities:
| Component | Description | Cost (USD) |
|---|---|---|
| Discovery & Planning | Requirements validation, UI/UX design, architecture | $8,000 |
| Core Development | 9 modules as detailed in Phase 1 scope | $52,000 |
| Mobile Apps | iOS + Android (React Native hybrid) | $12,000 |
| Testing & QA | Functional, integration, security, performance testing | $6,000 |
| Documentation & Training | User guides, admin playbooks, API docs, training materials | $3,000 |
| Deployment & Pilot | Infrastructure setup, pilot rollout, go-live support | $4,000 |
| Phase 1 Total Development | $85,000 | |
| Service | Provider | Estimated Monthly | Annual |
|---|---|---|---|
| Hosting & Database | Vercel + Supabase | $200 - $400 | $2,400 - $4,800 |
| Storage & CDN | Supabase Storage + S3 | $100 - $200 | $1,200 - $2,400 |
| AI Services | OpenAI (Whisper + GPT-4) | $200 - $500 | $2,400 - $6,000 |
| Email Delivery | SendGrid/Postmark | $50 - $100 | $600 - $1,200 |
| Monitoring & Analytics | Sentry + Posthog | $100 - $150 | $1,200 - $1,800 |
| Estimated Infrastructure Total (Year 1) | $7,800 - $16,200 | ||
The following services are billed directly to UniHawk and not included in development costs:
Note: AI usage costs scale with session volume. Estimate assumes ~500 sessions/month with transcription + summary enabled for 70% of sessions.
Milestone-Based Payments (Phase 1 Development):
Infrastructure Costs: Billed monthly in arrears based on actual usage
Payment Method: Bank transfer to Bettroi account (details provided upon contract signing)
| Period | Coverage | Cost |
|---|---|---|
| First 90 Days (Stabilization) |
|
Included in Phase 1 cost |
| Ongoing (Post-Stabilization) |
|
15% annually ($12,750/year) |
| Risk | Impact | Mitigation |
|---|---|---|
| Scope Creep | Delays, budget overruns |
|
| Identity & Tenancy Complexity | Data leakage, segmentation failures |
|
| Recording Pipeline Stability | Missing artefacts, poor user experience |
|
| Payment Gateway Differences | Regional rollout delays |
|
| Adoption & Training | Low usage, resistance to change |
|
| AI Cost Overruns | Budget exceeded, feature throttling |
|
| Timeline Pressure | Quality compromises, rushed delivery |
|
We commit to the following quality bars for Phase 1 delivery:
| Metric | Target | Measurement Method |
|---|---|---|
| Code Coverage | ≥80% for critical paths | Automated test suite (Jest + Playwright) |
| Session Success Rate | ≥99% (create → join → artefacts) | Monitoring + error tracking (Sentry) |
| Artefact Availability | ≥95% within agreed SLA | Recording retrieval logs + manual validation |
| Credit Accuracy | ≥99.5% | Pilot audit (all sessions reconciled) |
| Payment Success | ≥98% | Payment gateway logs (excluding bank failures) |
| Webhook Delivery | ≥99% | Event logs + dead-letter queue monitoring |
| Page Load Time | p95 < 2 seconds | Real user monitoring (LogRocket) |
| Security Vulnerabilities | Zero critical/high before launch | Penetration testing report |
"Bettroi delivered a complex multi-tenant platform on time and within budget. Their technical expertise and proactive communication made the project a success."
— Previous EdTech Client
We're excited to partner with UniHawk on this transformative platform. Here's how we can get started:
Validity Period: This proposal is valid until 26 March 2026
Pricing Lock: Pricing guaranteed for contracts signed before 26 March 2026
Payment Terms: 30% / 40% / 30% milestone-based (details on Page 6)
Infrastructure Costs: Billed monthly based on actual usage (estimated range provided)
Contract Duration: Phase 1 delivery (20 weeks) + 90-day stabilization period
To accept this proposal and begin development, please sign below and return this document via email to bt.thomas@bettroi.com. We will then proceed with contract preparation and project kickoff planning.
|
For UniHawk: _______________________________ Signature _______________________________ Name & Title _______________________________ Date |
For BETTROI FZE: _______________________________ Signature Authorized Signatory BETTROI FZE _______________________________ Date |
B.T. Thomas
Chief Executive Officer
Email: bt.thomas@bettroi.com
Phone: +971 54 714 8580
Website: www.bettroi.com
BETTROI FZE
Building A5, FLEXDESK DSO-DDP-A5-D-FLEX-1044
Dubai Silicon Oasis
Dubai, United Arab Emirates
Let's schedule a call to discuss this proposal and answer any questions.
We're excited to partner with you on this journey.
| Table | Purpose | Key Fields |
|---|---|---|
| tenants | Multi-tenant isolation | tenant_id, name, settings, created_at |
| users | Global user identity | user_id, email, name, auth_id |
| tenant_memberships | User → Tenant mapping | user_id, tenant_id, role, permissions |
| countries | Country org units | country_id, tenant_id, name, admin_user_id |
| branches | Branch/centre org units | branch_id, country_id, name, admin_user_id |
| programmes | Tutoring/test prep/counselling | programme_id, branch_id, type, name |
| courses | Courses/cohorts | course_id, programme_id, name, tutor_ids |
| sessions | Live sessions | session_id, course_id, zoom_meeting_id, start_time, recording_url |
| session_artefacts | Recordings, transcripts, summaries | artefact_id, session_id, type, url, metadata |
| attendance | Session participation tracking | attendance_id, session_id, user_id, join_time, leave_time, attendance_% |
| timeline_posts | Course timeline/discussions | post_id, course_id, author_id, content, attachments |
| assignments | Homework/assignments | assignment_id, course_id, title, due_date |
| submissions | Student submissions | submission_id, assignment_id, student_id, files, submitted_at |
| tests | Assessments/quizzes | test_id, title, questions, visibility (country/global) |
| test_assignments | Test → Cohort mapping | assignment_id, test_id, course_id, due_date |
| test_results | Student test scores | result_id, test_assignment_id, student_id, score, answers |
| credit_ledger | Student credit tracking | ledger_id, student_id, purchased, consumed, remaining |
| transactions | Payment history | transaction_id, student_id, amount, gateway_ref, status |
| webhooks | Event log | webhook_id, event_type, payload, delivered_at, status |
| Endpoint | Method | Purpose |
|---|---|---|
| /api/auth/login | POST | User authentication |
| /api/users | GET, POST | User management |
| /api/courses | GET, POST, PUT, DELETE | Course CRUD operations |
| /api/sessions | GET, POST, PUT | Session scheduling and management |
| /api/sessions/:id/join | POST | Generate Zoom join link |
| /api/sessions/:id/artefacts | GET | Retrieve session recordings/transcripts |
| /api/timeline | GET, POST, DELETE | Timeline posts and discussions |
| /api/assignments | GET, POST, PUT | Assignment creation and management |
| /api/submissions | GET, POST | Student submission uploads |
| /api/tests | GET, POST, PUT | Test creation and reuse |
| /api/analytics/attendance | GET | Attendance reports and rollups |
| /api/analytics/engagement | GET | Engagement metrics (attentiveness, talk-time) |
| /api/billing/credits | GET | Credit balance and ledger |
| /api/billing/topup | POST | Parent credit top-up (payment gateway) |
| /api/webhooks | POST | Webhook event delivery |
| Event | Trigger | Payload |
|---|---|---|
| session.started | Zoom meeting started | session_id, start_time, participants |
| session.ended | Zoom meeting ended | session_id, end_time, duration |
| recording.completed | Recording available | session_id, recording_url, transcript_url |
| attendance.computed | Attendance calculated | session_id, attendance_data[] |
| invoice.created | Invoice generated | invoice_id, student_id, amount |
| payment.completed | Payment successful | transaction_id, invoice_id, amount |
| user.enrolled | Student added to course | user_id, course_id, role |
| user.removed | User removed from course | user_id, course_id |