Two Palms - Online Tutoring Marketplace. Update: Prefer to work with Muslims

Job ID: 40319373

Budget: $250 – $350 USD

Project Brief: Tutoring Platform (like Tutopiya) with Group Lessons & Referrals
1. Project Overview
I need a full‑stack web application for an online tutoring marketplace called “Two Palms”. The platform connects students, tutors, parents, and referrers. It is inspired by sites like Tutopiya (https://www.tutopiya.com) but with key differences:

Group tutoring (up to 5 students per session) – students pay a lower per‑student price, tutors earn more per hour.

Parent dashboard – parents can manage multiple children, track lessons, and see progress.

Cash referral program – users earn a commission when they refer new students or tutors.

I already have a rough functional frontend (HTML/CSS/JS) with signup, login, dashboard, and all user interfaces. The backend needs to be built from scratch to replace the current localStorage mock data with a real database, authentication, payment processing, and Zoom integration.

Reference design: I like the layout and engagement of Tutopiya (https://www.tutopiya.com), but my colour scheme and unique features will remain.

2. Core Features
User Roles & Authentication
Roles: Student, Tutor, Parent, Referrer (a user can have multiple roles)

Registration with: full name, username, email, strong password, security questions (3), country, date of birth (age validation per role)

Login with username or email + password

Password reset via email OTP and/or security questions

Email update via security questions (similar to “forgot email” flow)

JWT authentication (httpOnly cookie recommended)

Student Dashboard
Search/filter tutors by subject, price, rating

View tutor profiles

Book a lesson (private or group) – choose date/time, pay via Stripe

View upcoming/past lessons with Zoom join links

Upgrade to “Advanced” features (progress tracking, full history, favourite tutors) – subscription based (£10/month)

Add/remove payment methods

Tutor Dashboard
Profile editing (bio, subjects, hourly rate, availability)

View upcoming lessons (private and group) – start Zoom meeting

View earnings and payout history

Request payouts via Stripe Connect

Upgrade to “Advanced” (detailed reports, advanced calendar, featured in search)

Parent Dashboard
View list of children (name, age, progress)

Add child (advanced feature, up to 5 children)

Book lessons for each child

View upcoming lessons for each child with Zoom join links

Combined billing (optional advanced feature)

Referrer Dashboard
Unique referral link (copy to clipboard)

Stats: total referrals, lesson earnings (5% of lesson fees), subscription earnings (50% of advanced subscriptions)

Optional: leaderboard, pending commissions

Group Tutoring (Main Differentiator)
Tutors can create a group lesson: subject, date/time, price per student, max 5 students

Students see available group lessons and can book a seat

When the group is full, the lesson is confirmed

One Zoom link is shared with all participants

Payment: each student pays separately; tutor receives total sum

Booking & Payments
Students book lessons (private or group) – payment via Stripe (one‑time)

Platform commission (e.g., 10%) is deducted automatically

Stripe Connect for payouts to tutors (funds released after lesson completion or cancellation window)

Subscription for advanced features: monthly recurring via Stripe

Zoom Integration
When a lesson is booked, a Zoom meeting link is generated automatically (Zoom API)

The link is displayed on the lesson card and can be joined with one click (no account required for students)

Referral System
Each user has a unique referral code/link

When a new user signs up with a referral code, the referrer is tracked

Referrers earn commission on lesson fees (5%) and on advanced subscriptions (50%)

Commission amounts are shown in the referrer dashboard

Admin Panel (Basic)
Manage users (view, suspend)

Manage lessons (view, cancel)

View platform earnings (commission, subscriptions)

Basic dispute resolution tools

3. Technical Stack (Flexible)
Backend: Node.js + Express (preferred) or Python/Django. Must be scalable and secure.

Database: MongoDB (preferred) or PostgreSQL.

Authentication: JWT with httpOnly cookies.

Payments: Stripe (Connect for marketplace payouts).

Email: Nodemailer with a free SMTP service (SendGrid, Gmail, etc.).

Zoom: Zoom API (create meetings programmatically).

Frontend: I already have the HTML/CSS/JS. You will adapt it to call your API endpoints and replace localStorage with real data. You may use React/Vue if you prefer, but the existing static pages are already built and I want to keep them.

4. Design & User Experience
I will provide the frontend files (HTML/CSS/JS) as a starting point. You must retain the exact look and feel, but connect it to your backend.

The site must be fully responsive (works on mobile, tablet, desktop).

Use the colour scheme I already have: primary green (#2D6A4F), accent orange (#D4A373), white background.

The layout should be clean, modern, and engaging – similar to Tutopiya’s structure (hero with dual CTAs, stats strip, tutor cards, pricing, etc.). You may reorganise the landing page to follow that flow, but keep my unique elements (crossword, referral section, etc.) where appropriate.

5. Deliverables
Complete source code for backend (with clear folder structure) and frontend (updated HTML/JS files)

Database schema (Mongoose models or SQL migrations)

API documentation (list of endpoints with example requests/responses)

Instructions for deployment (environment variables, server setup)

A working demo (can be hosted on a temporary server or local run)

Full ownership and rights to the code (no third‑party dependencies that require separate licenses beyond open‑source)

6. Timeline & Budget
I am looking for a developer with proven experience in marketplace platforms. Please provide your estimated timeline and total cost. I have a budget of around 900,000 TZS (~$350 USD) for this project, but I am open to discussing phased payments if the scope requires it.

7. Screening Questions (to be answered in your proposal)
Have you built a tutoring or freelance marketplace before? Share a link or describe your role.

How would you implement group bookings (max 5 students) and split payments?

What experience do you have with Stripe Connect and Zoom API?

How do you handle user authentication and roles (student, tutor, parent, referrer) securely?

Will you provide full source code and database schema after completion?