Welcome to Kalkulator Receh, a modern web application designed to simplify the process of splitting bills with friends. Built with Next.js and TypeScript, this app offers a smart, interactive, and highly efficient user experience.
Check out the live demo: https://retro-split-bill-web.vercel.app/
This application is equipped with various advanced features to make splitting bills as fast and easy as possible:
- AI Receipt Scanner: Snap a photo or upload your receipt and let AI extract the items and prices automatically.
- Rigid Sequential Flow: A step-by-step locked workflow ensures data consistency from adding participants to final checkout.
- Multi-language Support (I18n): Seamlessly switch between English and Indonesian at any time.
- Auto-Saved Sessions: Your session (participants, items, costs) is automatically saved in the browser. When you return, the app will offer to restore your last session.
- Interactive Bulk Input: Paste multiple lines of orders from a receipt at once with real-time validation preview.
- Mark Debts as Paid: Easily track payment status using the checkbox feature on debt details.
- Flexible Item Management: Edit, delete, and tag items to multiple participants, complete with logic that limits tags based on item quantity.
- Copy Text for WhatsApp: Copy the calculation results in a neat and super detailed text format—complete with item details per person—ready to be shared.
- Responsive & Optimized Design: A neat and well-structured interface on both desktop and mobile devices.
- Framework: Next.js
- Language: TypeScript
- Hybrid App: Capacitor
- Styling: Tailwind CSS
- Schema Validation: Zod
- UI Components: shadcn/ui
- Animation: Framer Motion
- Security: DOMPurify
- AI Backend: Groq API
- Deployment: Vercel
Want to run this project on your computer? Follow these steps:
-
Clone Repository
git clone https://github.com/Mysteriza/split-bill-web cd split-bill-web -
Install Dependencies
npm install
-
Run Development Server
npm run dev
-
Open Application Open your browser and visit http://localhost:3000 (or another port shown in the terminal).
Thank you for checking out this project!