Skip to content

kanswam/expense-claim-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thamarai Foods Expense Claims

Structured expense management for F&B operations — receipt upload, approval workflow, audit trail, and payment tracking.

License: Proprietary Stack


The Problem This Solves

In most small F&B businesses, expense claims work like this: a staff member buys something for the outlet, takes a photo of the receipt on WhatsApp, sends it to the manager, the manager forwards it to the owner, the owner pays cash or bank transfer, nobody records it properly, and at month end the accountant asks where all the money went.

This is not an accounting system. It is not an ERP. It is a simple, structured way for staff to submit claims, managers to approve them, and owners to track what gets paid and what doesn't — with every receipt stored, every decision logged, and every rupee accounted for.


The Real Story

Taiwan Maami staff regularly make small purchases for the outlets — cleaning supplies, small equipment, emergency ingredient top-ups between deliveries. Before this system, these were tracked in a WhatsApp group and a spreadsheet.

The problems were predictable: receipts got lost, amounts were disputed, staff sometimes waited weeks for reimbursement, and the owner had no real-time view of outstanding claims.

This system takes ten minutes to set up and replaces all of that.


What Problem This Solves

Problem What operators do today What this system does
Receipt management is WhatsApp photos Group chat chaos Structured upload, stored in Cloudinary, always retrievable
No approval trail Verbal approval, forgotten Multi-step approval — submit, review, approve, pay
Staff wait weeks for reimbursement Manual follow-up Real-time status — submitted, under review, approved, paid
Owner has no visibility Ask each manager Dashboard showing all pending, approved, and paid claims
Amounts get disputed No record Receipt photo attached to every claim, immutable
Outlet claims mixed together One spreadsheet Outlet-scoped — each manager sees only their outlet
No audit trail Nothing Every action logged — who submitted, who approved, when, why rejected
Category tracking None Claims categorised — supplies, equipment, transport, other

Key Features

Claim Submission

  • Staff submit claims with amount, category, description, and receipt photo
  • Receipt upload via mobile camera — stored in Cloudinary
  • Outlet auto-assigned based on staff login
  • GST number capture for tax-deductible expenses

Approval Workflow

  • Manager reviews and approves or rejects with reason
  • Owner has final approval for claims above threshold
  • Rejection with reason — staff can see why and resubmit
  • WhatsApp notifications on status change

Payment Tracking

  • Approved claims marked as paid with payment date and method
  • Bank transfer reference number stored
  • Outstanding claims dashboard — what is approved but not yet paid
  • Payment history per staff member

Reporting

  • Monthly expense summary by category
  • Per-outlet expense breakdown
  • Outstanding claims report
  • Staff-level claim history
  • Export to CSV for accountant

Audit Trail

  • Every action recorded — submitted, viewed, approved, rejected, paid
  • Timestamp and user on every state change
  • Immutable — no editing after submission, only rejection and resubmission

Tech Stack

Layer Technology
Backend Node.js, Express, tRPC
Frontend React, Vite, Tailwind CSS
ORM Drizzle ORM
Database MySQL 8 — DigitalOcean Managed Database, Bangalore
Auth Employee Master API (staff login via mobile number)
File Storage Cloudinary (receipt uploads)

Database Schema (11 Tables)

Core tables covering:

  • claims — full claim records with status tracking
  • claim_items — line items per claim
  • claim_receipts — receipt images with Cloudinary references
  • approvals — approval chain with reasons
  • payments — payment records with method and reference
  • categories — configurable expense categories
  • audit_log — every state change with user and timestamp
  • users — outlet-scoped staff with role assignment

Repository Structure

/server
  /routers/       — tRPC routes (claims, approvals, payments, reports)
  /db/            — Database queries
/client/src
  /pages/         — Staff claim submission, manager approval, owner dashboard
  /components/    — Receipt viewer, claim status tracker, payment recorder
/drizzle/         — Schema and migrations (11 tables)

Using This for Your Business

If you run a multi-outlet F&B business and your expense claim process lives in a WhatsApp group, this was built for exactly that problem.

It works standalone or as part of the full Thamarai Foods stack — POS, inventory, employee management, and expense claims — all connected through a shared data lake.

Contact: kannan.swamy@taiwanmaami.com


Roadmap

  • Direct bank transfer integration — planned
  • Recurring expense templates — planned
  • Multi-currency support — planned
  • Integration with accounting software (Tally, Zoho Books) — planned

Licence

This software is proprietary. All rights reserved by Thamarai Foods and Trading Private Limited.

You may view this code for evaluation purposes. You may not use, copy, modify, distribute, or deploy this code without a valid commercial licence agreement.

To obtain a licence: kannan.swamy@taiwanmaami.com


Related Repositories


Replace your WhatsApp receipt group with something that actually works.

About

A comprehensive expense claim and reimbursement system with multi-role workflow for Staff, Manager, and Finance. Features include claim submission with receipt upload, approval chain management, payment tracking, and audit reporting.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages