Tindahan Helper is a Point of Sale (POS) and pricing reference system designed specifically for local convenience stores and small retail shops (like sari-sari stores in the Philippines). It provides an intuitive, user-friendly interface to manage product prices, view physical item locations, process sales, and track revenue without requiring an internet connection or complex cloud setups.
This project was originally built out of personal necessity. When stepping in to temporarily watch the family sari-sari store, the hardest parts were memorizing frequently changing prices and finding where items were actually placed in a disorganized setup.
Note on Stock Monitoring: You might notice that this system does not track exact inventory quantities. This is intentional! In a typical sari-sari store, stock levels are usually just checked visually (you know you're running out when you physically see the shelf is empty).
Instead of tedious stock counting, this app focuses heavily on what actually matters for someone filling in:
- Fast Price Lookups: Easily check and update prices.
- Location Photos: Features a dedicated image upload for the shelf location so anyone can find a product even if they aren't familiar with the store layout.
- Inventory Management: Manage products, categories, pricing, and shelf locations. Supports adding product photos and location images.
- Point of Sale (POS): Fast and efficient checkout cart system. Supports custom bulk pricing tiers (e.g., discounted prices for purchasing multiple quantities).
- Sales Tracking: Comprehensive sales history with real-time analytics on daily revenue, cart averages, and transaction volume.
- Audit Logging: Tracks all system events including product creation, updates, deletions, and pricing changes. Supports restoring deleted products or reverting price changes.
- Theme Engine: Multiple built-in color themes and background patterns to customize the visual appearance of the application.
- Responsive Design: Optimized for both desktop and mobile devices, allowing store owners to manage their inventory on the go.
- Local Network Access: Built-in guidance for accessing the system from mobile devices connected to the same local Wi-Fi network.
- React
- TypeScript
- Vite
- Vanilla CSS (Custom design system)
- Node.js
- Express
- Multer (File uploads)
- Local JSON Data Store (No external database required)
- Node.js (v16.x or higher recommended)
- npm or yarn
-
Clone the repository:
git clone https://github.com/yourusername/tindahan-helper.git cd tindahan-helper -
Install dependencies (Windows): Simply double-click the
setup.batfile in the project root folder. It will automatically install all required packages for both the frontend and backend.(Manual Installation for Mac/Linux or Terminal users):
# Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
For Windows users, the easiest way to launch the application is using the provided batch script. It acts as a one-click macro that compiles a highly-optimized Production Build of the frontend and serves it through the backend server on port 5000.
- Double-click the
start.batfile in the project root. - The script will automatically compile the latest frontend changes and start the backend. You can access the app by navigating to
http://localhost:5000in your web browser. - The console will also display instructions for accessing the app from mobile devices on your local Wi-Fi network.
To run the application in development mode (with hot-reloading for the frontend), you will need to start both the backend server and the frontend development server manually.
-
Start the backend server:
cd backend npm startThe backend server will run on
http://localhost:5000. -
Start the frontend development server: Open a new terminal window or tab:
cd frontend npm run devThe application will be accessible at
http://localhost:5173.
-
Build the frontend:
cd frontend npm run buildThis will compile the React application into the
distdirectory. -
Run the production server: The Node.js backend is configured to serve the frontend static files from the
frontend/distdirectory.cd backend npm startThe entire application (frontend and backend) will be accessible at
http://localhost:5000.
The repository is structured as a monorepo following a client-server architecture. The frontend is a Single Page Application (SPA) built with React that communicates with the Node.js backend via RESTful APIs.
backend/data/inventory.json: Acts as the local database, storing products, sales records, categories, and audit logs.backend/uploads/: Stores uploaded product and shelf location images.frontend/src/components/: Contains modular React components such asApp,ProductForm,CartPOS,SalesHistory, andSettings.
- Migrate to SQLite: Replace the current JSON file data store with SQLite to improve concurrency, performance at scale, and data safety during unexpected power outages.
- Customer Credit & Ledger System (Utang/Kulang): Implement a streamlined ledger feature to track outstanding customer balances via an easy-to-use tabular interface. This will monitor two common scenarios:
- Full Credit (Utang): Track deferred payments for items to be paid later, including the ability to apply custom interest or markup fees.
- Partial Payments (Kulang): Log transactions where the customer pays a partial amount upfront and owes a remaining short balance.
- Fork the repository.
- Create a feature branch (
git checkout -b feature/your-feature-name). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature-name). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.





