Site icon BotFlo

Cursor App Template #4 — Expense Reports

Expense Reports

Submit, track, and approve employee reimbursements.

Overview

This expense reporting app supports both employees submitting reimbursements and managers reviewing them. Add expenses with categories and receipt attachments, filter by status and date, approve or reject submissions, and export summaries—all in the browser with data that persists between visits.

Key features

Dashboard

KPI cards show Total spend, Pending amount, and Approved amount based on the current filters and view.

Employee and manager views

Toggle between Employee view and Manager view. In manager mode, a banner explains the approval workflow, and Approve / Reject buttons appear on rows with Submitted status.

Add expenses

The add-expense form captures:

Categories include Meals, Travel, Supplies, Software, Training, and Other.

Expense table

AG Grid columns: Date, Description, Category, Amount, Receipt, Status. All fields are editable inline. Status uses color coding for Draft, Submitted, Approved, and Rejected. A pinned bottom row totals filtered amounts. Columns sort and resize.

Filters

Filters apply to the grid, KPIs, and category chart.

Charts

A pie chart shows spending breakdown by category for the filtered dataset.

Import and export

Appearance

Dark mode with localStorage persistence.

Data & persistence

Ten sample expense rows load on first visit. All expenses and the next ID counter save to localStorage, so submissions and approvals survive page reloads.

Built with

Tailwind CSS, AG Grid Community, Alpine.js, Chart.js, SheetJS, jsPDF, and jspdf-autotable.

Try the interactive walkthrough below. Click Walk through features and use Next / Back (or arrow keys) to explore every feature.

Expense Reports — Polished app

Expense Reports

Submit, track, and approve employee reimbursements.

Total
$1,353.24
Pending
$752.74
Approved
$600.50
Add expense
Spending by category
Travel · Meals · Supplies · Software · Training · Other
Manager view: Use Approve / Reject on submitted rows.
DateDescriptionCategoryAmountReceiptStatusActions
2026-03-01Client lunch — Acme CorpMeals$86.50Receipt #1042Approved
2026-03-03Uber to airportTravel$42.00ApproveReject
2026-03-05Office suppliesSupplies$34.99Draft
2026-03-07Hotel — conferenceTravel$289.00📎 AttachedApproved
2026-03-08Software subscriptionSoftware$49.00ApproveReject
2026-03-10Team dinnerMeals$156.75Restaurant billApproved
2026-03-12Parking downtownTravel$18.00Draft
2026-03-14Training courseTraining$199.00Invoice #8821ApproveReject
2026-03-15Phone bill reimbursementOther$65.00Approved
2026-03-18Flight — client visitTravel$412.00📎 AttachedApproveReject
Total$1,353.24
💾 Expenses and dark-mode preference persist in localStorage between visits.
📱 Layout stacks on small screens — cards, form, and toolbar wrap with 44px touch targets.
Exit mobile version