KasirWarung is a simple and modern point-of-sale (POS) application for small food stalls or street food vendors. This application is built using React, TypeScript, and Tailwind CSS with a focus on ease of use and performance.
- 🔒 Authentication system with login/logout
- 📊 Interactive dashboard with sales summaries
- 🍲 Food and beverage menu management
- 💰 Fast transaction processing
- 📈 Sales reports and analytics
- 📱 Responsive design (mobile-friendly)
- 🌓 Light and dark mode
KasirWarung fully supports offline operation, allowing you to:
- Process transactions even without an internet connection
- Manage menu items offline
- View dashboard and reports offline
This is made possible through the use of IndexedDB (via Dexie.js), which provides a reliable client-side storage solution.
- Frontend: React, TypeScript
- Styling: Tailwind CSS
- State Management: Zustand
- Routing: React Router
- Database: Dexie.js (IndexedDB wrapper)
- Charts: Recharts
- Icons: Lucide React
- Build Tool: Vite
- Node.js (version 16 or newer)
- pnpm (preferred package manager)
-
Clone this repository
git clone https://github.com/username/kasirWarung.git cd kasirWarung -
Install dependencies
pnpm install
-
Run the development server
pnpm dev
-
Open the application in your browser
http://localhost:5173
- Use demo credentials to login:
- Username:
admin - Password:
admin123
- Username:
The dashboard displays today's sales summary, recent transactions, best-selling items, and a sales graph for the last 7 days.
This page allows you to manage your food stall menu:
- Add new menu items
- Edit existing items
- Delete items
- View low stock alerts (automatic warnings)
Process sales transactions with:
- Available menu item selection
- Item quantity adjustment
- Automatic total calculation
- Transaction history storage
View and analyze sales data:
- Daily or monthly reports
- Export data to CSV
- Summary of total sales and transaction counts
kasirWarung/
├── src/
│ ├── assets/ # Images and static assets
│ ├── components/ # Reusable UI components
│ │ ├── dashboard/ # Dashboard components
│ │ ├── menu/ # Menu management components
│ │ ├── reports/ # Report components
│ │ └── transaction/ # Transaction components
│ ├── db/ # Database configuration (Dexie.js)
│ ├── layout/ # Main application layouts
│ ├── pages/ # Main pages
│ ├── stores/ # State management with Zustand
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Helper functions
├── public/ # Public static assets
└── ... # Configuration files
pnpm dev- Run the development serverpnpm build- Build the application for productionpnpm lint- Run ESLintpnpm preview- Preview the production build
Contributions are always welcome! Please create a pull request or open an issue for feature suggestions or bug fixes.
MIT
Made with ❤️