← Back to list

KhajaBox — Building Real Solutions at TAI

During our internship at TAI, we got more than just a chance to practice our technical skills — we got to build something real: connecting…

Ganga Pandey in TAI Blog · 2025-06-12 07:13 · 59 claps · 7.8 min read
#cloud-kitchen-app #internships #khajabox
Open on Medium ↗
Wiki topics: 🍳 · Food & Cooking

KhajaBox — Building Real Solutions at TAI

During our internship at TAI, we got more than just a chance to practice our technical skills — we got to build something real: connecting home cooks with food lovers who crave authentic, homemade meals.

While commercial food delivery apps dominate the market, we noticed a gap — traditional dishes and small-scale cooks often lacked a dedicated platform. This inspired us to create KhajaBox, a marketplace where homemade food thrives.

In this blog, we share our journey — how six interns collaborated to build KhajaBox, the challenges we overcame, and the lessons we learned along the way.

Why KhajaBox Matters

Homemade food carries cultural heritage, love, and authenticity. Yet, many talented cooks struggle to reach customers, while foodies miss out on these unique flavors. We envisioned KhajaBox as a bridge — a space where cooks could monetize their passion and users could discover meals that taste like home.

Our Team: Roles and Collaboration

Together, we were a group of six passionate interns, each bringing a different strength to the table.

The Big Questions We Asked Ourselves

  1. How can we design a system that serves Admins, Cooks, and Users differently but smoothly?
  2. How can we keep the user journey simple while still adding important features like real-time order updates?
  3. Can we deliver a functional product in just one month?

The answer to the last question? A resounding yes.

Key Features We Built

  1. Role-Based Dashboards: Tailored interfaces for admins, cooks, and users ensured smooth workflows.
  2. Multi-Cook Ordering: Users could order from multiple cooks in one cart, with orders split automatically.
  3. Live Tracking: Integrated Socket.IO and Leaflet.js to show real-time delivery updates on a map.
  4. Secure Payments: Khalti gateway integration provided reliable transactions, with plans to expand options.
  5. Instant Notifications: Firebase Cloud Messaging kept users informed at every order stage.

It wasn’t just about coding screens and APIs — it was about building an ecosystem. We learned how small decisions in UX, backend logic, and testing add up to the overall user experience. We also learned that great teamwork isn’t just about dividing tasks — it’s about sharing ownership of the project.

KhajaBox taught us more than any tutorial or course ever could. We faced real challenges, brainstormed real solutions, and celebrated every small win together. Most importantly, we walked away not just as better developers and testers but as a better team.

Tech Stack Used

i. Frontend: React.js with Tailwind CSS for responsive, intuitive interfaces.

ii. Backend: Laravel (PHP) with JWT authentication to secure RESTful APIs.

iii. Database: MySQL optimized for performance through indexing.

iv. Real-Time Tools: Socket.IO for live tracking and Firebase for notifications.

Frontend:

Here are some of the designs for different pages on our website.

A login and registration page allowing users to sign in or register as a cook or customer

A login and registration page allowing users to sign in or register as a cook or customer

The landing page displayed before user login, featuring navigation

The landing page displayed before user login, featuring navigation

KhajaBox landing page displayed after user login, showing navigation, user options, and content feed

KhajaBox landing page displayed after user login, showing navigation, user options, and content feed

Admin Dashboard Page

Admin Dashboard Page

Admin dashboard view showing the interface for reviewing and approving a cook’s profile on KhajaBox”

Admin dashboard view showing the interface for reviewing and approving a cook’s profile on KhajaBox”

Cook’s profile page as seen by users, displaying cook status, food categories, reviews, and cook information

Cook’s profile page as seen by users, displaying cook status, food categories, reviews, and cook information

KhajaBox cart checkout page showing selected food items, quantities, prices, and payment options

KhajaBox cart checkout page showing selected food items, quantities, prices, and payment options

KhajaBox cook’s dashboard page showing earnings summary, order management, menu settings, and live orders

KhajaBox cook’s dashboard page showing earnings summary, order management, menu settings, and live orders

KhajaBox page where cook adds new food categories, including category name, description, and image upload options

KhajaBox page where cook adds new food categories, including category name, description, and image upload options

Workflow Deep Dive:

1. Overall System Flow Diagram

KhajaBox is more than just a food delivery app — it’s a vibrant digital kitchen that connects food lovers with passionate home cooks. From the moment a cook applies to join, to the instant a hot meal lands at your doorstep, every step is powered by a seamless workflow.

Users can easily browse mouthwatering menus, place orders in a few taps, and get their food delivered by a rider assigned through the system. Meanwhile, cooks manage their menus and update order statuses, while admins ensure quality by reviewing applications and monitoring the process.

With real-time updates, effortless ordering, and a platform built on trust and community, Khajabox turns every meal into a meaningful experience — one delicious bite at a time.

KhajaBox System Flow Diagram

KhajaBox System Flow Diagram

2. Authentication Flow Diagram

Signing up on KhajaBox isn’t just simple — it’s secure and built with user trust in mind.

When a new user registers with their email and password, our system first checks if the credentials are valid and unique. Once everything looks good, we send a verification email using Mailpit. This step ensures the email address is real and prevents fake accounts from flooding the platform.

The user receives a link in their inbox — clicking it verifies their email and redirects them back to the login page. Only after this verification step can they access their dashboard.

From there, our backend uses JWT (JSON Web Tokens) to handle secure logins. After a successful login, a token is issued and stored safely on the client side, enabling role-based access for Admins, Cooks, or Customers — without needing to log in again repeatedly.

This process strikes the perfect balance between security, simplicity, and user experience, making sure every session starts and stays secure from the very first click.

Authentication Flow Diagram

Authentication Flow Diagram

3. Khalti Payment Flow Diagram

At KhajaBox, we wanted to make the checkout experience as simple and secure as ordering your favorite dish. That’s why we integrated Khalti, one of Nepal’s most trusted digital wallets. Here’s how the process works behind the scenes:

When a user taps the Checkout button, our backend hits Khalti’s endpoint. This generates a Khalti payment interface showing the total amount, order details, and user info — all fetched directly from the user’s basket. Once the user logs in and confirms the payment, Khalti returns a unique payment identifier called a pidx. But the transaction isn’t marked complete just yet.

To verify the payment, our system calls another Khalti API using the pidx. If Khalti confirms the payment as Completed, we:

  • Create separate orders for each cook (since users can order from multiple cooks)
  • Credit the cook’s wallet with 80% of the order amount (after a 20% platform commission)
  • Record a separate admin transaction for platform revenue
  • Clear the user’s basket and mark it as completed

Khalti Payment Flow Diagram

Khalti Payment Flow Diagram

This seamless payment flow ensures:

  • Customers enjoy a hassle-free checkout
  • Cooks get paid instantly and transparently
  • The platform remains secure, reliable, and localized

This smooth payment flow ensures that customers enjoy a hassle-free experience, and cooks get paid without delay. It’s fast, reliable, and built with local users in mind.

4. Push Notification Flow Diagram

KhajaBox integrates a push notification system using Firebase Cloud Messaging (FCM). Whenever an important action happens — like an order being accepted, food being prepared, or the delivery starting — a notification is instantly pushed to the user’s device.

Our Laravel backend sends structured API requests to FCM, which then handles delivering these messages to customers, cooks, and delivery agents. This ensures that everyone stays updated in real-time without needing to manually refresh or check the app.

Push Notification Flow Diagram

Push Notification Flow Diagram

The notification flow is directly tied to the different stages of the order process. For example, once a cook accepts an order, the customer immediately gets a notification.

Updates are also sent when the food is ready, when a delivery agent picks it up, and when the order reaches the customer. This system helps create a smoother, faster communication loop across everyone involved, making the overall experience much more dynamic and efficient.

Quality Assurance & Testing

To ensure the KhajaBox platform met the highest standards of quality, we adopted a layered and thorough testing approach. The QA cycle began with understanding feature requirements, followed by designing test scenarios and cases based on both functional and non-functional aspects.

Our strategy combined manual testing, automated testing, and performance testing to validate core functionality, edge cases, system behavior under load, and user experience.

Tools and Techniques Used

  • Selenium with Java Used for UI automation to cover critical user flows. Java-based scripts enabled scalable, maintainable testing with faster regression validation.
  • Postman + Newman Handled API testing for both positive and negative cases. Newman automated test collections and generated HTML reports to ensure consistent API performance.
  • Apache JMeter Simulated real-world load to identify performance bottlenecks and optimize backend services for peak traffic.
  • Manual Testing Critical for UI/UX validation and exploratory testing across Admin, Cook, and End User roles.
  • Jira & Confluence Used for detailed bug tracking and documentation, including test cases, QA logs, and RCA notes.
  • Trello Used early on for planning and team coordination via a Kanban board.

Testing Techniques Employed

  • Smoke Testing: Verified basic functionality after deployments.
  • Sanity Testing: Checked bug fixes and new features.
  • Exploratory Testing: Uncovered hidden issues beyond scripted tests.
  • Regression Testing: Ensured no feature breakage after updates.

This collaborative, tool-assisted workflow ensured quick resolution, better accountability, and a clean handoff across team roles.

Challenges We Overcame

1. Real-time location tracking

Problem: GPS data interruptions caused map freezes.

Solution: We optimized update intervals and added fallback protocols for signal drops.

2. Payment Integration Complexity

Problem: Ensuring secure transactions required meticulous error handling.

Solution: We implemented Khalti payment gateway targeted towards Nepali audience and a transparent wallet system for cooks.

3. Cross-Team Collaboration

Problem: Merging code from developers led to conflicts.

Solution: Daily sync-ups and strict Git workflows kept our codebase clean.

4. Browser Compatibility for Notifications

Problem: Push notifications behaved inconsistently across browsers.

Solution: Firebase Cloud Messaging standardized delivery, with fallbacks for edge cases.

Lessons That Shaped Us

i. Testing is Non-Negotiable: Tools like Selenium and Postman helped us catch edge cases early.

ii. Clean Code Wins: Prioritizing readability over clever shortcuts saved us hours of debugging.

iii. Communication Drives Success: Daily stand-ups and collaborative tools like Jira kept us aligned.

“This project taught us that teamwork isn’t just about dividing tasks — it’s about shared ownership.”

Looking Ahead: KhajaBox’s Future

i. Multilingual Support: Expanding accessibility for Nepal’s diverse linguistic communities.

ii. Subscription Models: Enabling recurring orders for loyal customers.

iii. Delivery Partnerships: Collaborating with local riders to scale efficiently.

iv. Mobile App Development: Enhancing accessibility with dedicated iOS and Android apps.

Final Reflections

KhajaBox was more than an internship project — it was a transformative experience. From late-night debugging sessions to the thrill of our final presentation, we grew as developers and collaborators.

We learned to balance ambition with practicality, and most importantly, we proved that a small team with a shared vision can create meaningful impact. It was a chance to bring value to real people, and a memory we’ll carry into our careers.


메타데이터
post_id
fa9cb602f233
slug
khajabox-building-real-solutions-at-tai-fa9cb602f233
url
https://blog.tai.com.np/khajabox-building-real-solutions-at-tai-fa9cb602f233
canonical_url
https://blog.tai.com.np/khajabox-building-real-solutions-at-tai-fa9cb602f233
author_url
https://medium.com/@igangapandey
status
ok
fetched_at
2026-08-21 07:09:55