Skip to content

rumambo/tan-pos

Β 
Β 

Repository files navigation

🍽️ TanStack POS β€” Modern Restaurant Management System

Transform your restaurant operations with a lightning-fast, real-time Point of Sale system built on cutting-edge web technologies.

Docker React TypeScript PostgreSQL TailwindCSS tRPC Drizzle ORM Socket.IO License


✨ Why TanStack POS?

Running a restaurant is hard enough. Your software shouldn't make it harder.

TanStack POS was built by people who understand the chaos of dinner rushβ€”the server who needs to fire an order in seconds, the kitchen staff juggling a dozen tickets, the manager who needs real-time visibility into what's happening on the floor.

This isn't just another POS system. It's a complete restaurant operations platform designed for how modern restaurants actually work:

  • πŸš€ Blazing fast β€” Sub-second order entry, instant kitchen updates
  • πŸ“± Works everywhere β€” Desktop, tablet, or TV displays
  • πŸ”„ Real-time sync β€” WebSocket-powered updates via Socket.IO, everyone sees the same data instantly
  • 🎯 Role-optimized β€” Each staff member gets exactly what they need

πŸ–ΌοΈ See It In Action

Overview Dashboard β€” Admin View

Dashboard Admin Interface Comprehensive insights into sales, active orders, and staff performance

Point of Sale β€” Speed Meets Simplicity

Dashboard Server Interface Intuitive product grid with one-tap ordering, table management, and custom notes support

Kitchen Display β€” Built for the Line

Dashboard Kitchen Interface Real-time order queue with item-level tracking, audio alerts, and touch-friendly controls


🎯 Key Features

For the Front of House

Feature Description
Quick Order Entry Tap-to-add products, quantity modifiers, and special instructions
Table Management Visual floor plan with real-time status (available, occupied, reserved)
Order Types Dine-in, takeaway, and delivery β€” each with tailored workflows
Send to Kitchen Fire orders immediately or hold for coordinated service
Flexible Payments Cash, card, and digital wallet support with split-check options
Add to Open Orders Keep adding items to tables without closing the check

For the Kitchen

Feature Description
Real-Time Queue Orders appear instantly with item-by-item preparation tracking
Item-Level Status Mark individual dishes ready β€” perfect for "as-ready" service
Food vs Beverage Filter Focus on what matters β€” split kitchen and bar displays
Audio Notifications Never miss a new order with configurable sound alerts
Server Attribution See who ordered what, with timestamps for accountability
Cancel Pending Items Remove items before preparation starts
WebSocket Updates Real-time status sync between kitchen and POS via Socket.IO

For Management

Feature Description
Unified Dashboard See all active orders, table status, and daily revenue at a glance
Staff Management Create accounts, assign roles, and manage permissions
Sales Analytics Track revenue by day, product, or category
Order History Complete audit trail with payment records
System Settings Configure tax rates, receipt formats, and business details

πŸ” Role-Based Access

Every staff member gets a streamlined interface built for their job:

Role What They See What They Can Do
Admin Everything Full system configuration and all interfaces
Manager Dashboard + Reports Oversight, refunds, and staff management
Server POS (Dine-in) Create and manage table orders
Counter POS (All types) All orders + payment processing
Kitchen Kitchen Display View orders and update preparation status

πŸš€ Get Started in 60 Seconds

Prerequisites

  • Docker installed and running
  • That's it. Seriously.

Quick Start

# Clone the repository
git clone https://github.com/yourusername/tan-pos.git
cd tan-pos

# Start everything with Docker
docker-compose up -d

# Or if you prefer npm
npm install
npm run dev

Access the app: http://localhost:3000

Demo Credentials

Role Username Password
Admin admin admin123
Manager manager1 admin123
Server server1 admin123
Counter counter1 admin123
Kitchen kitchen1 admin123

πŸ› οΈ Tech Stack

This project leverages a modern, production-ready stack:

Frontend

  • TanStack Start β€” Full-stack React framework with file-based routing
  • React 19 β€” Latest concurrent features and server components
  • TanStack Query β€” Smart caching and real-time data synchronization
  • TanStack Router β€” Type-safe routing with automatic code splitting
  • Tailwind CSS v4 β€” Utility-first styling with lightning CSS
  • shadcn/ui β€” Beautiful, accessible component primitives

Backend

  • tRPC β€” End-to-end type safety between client and server
  • Socket.IO β€” Real-time WebSocket communication for instant updates
  • Drizzle ORM β€” Type-safe database queries with zero overhead
  • PostgreSQL 15 β€” Battle-tested relational database
  • Zod β€” Runtime validation with static type inference

Infrastructure

  • Docker Compose β€” One-command development environment (Frontend, PostgreSQL, Socket.IO)
  • Vite β€” Sub-second HMR and optimized production builds

πŸ“ Project Structure

tanstack-pos/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/      # Reusable UI components
β”‚   β”œβ”€β”€ routes/          # File-based routing (TanStack Router)
β”‚   β”‚   └── dashboard/   # Protected dashboard routes
β”‚   β”œβ”€β”€ integrations/    # tRPC client and server setup
β”‚   β”œβ”€β”€ db/              # Drizzle schema and database utilities
β”‚   β”œβ”€β”€ lib/             # Shared utilities and auth context
β”‚   └── hooks/           # Custom React hooks
β”œβ”€β”€ database/
β”‚   └── init/            # SQL initialization scripts
β”œβ”€β”€ docker-compose.yml   # Container orchestration
└── drizzle.config.ts    # Database migration config

🀝 Contributing

We welcome contributions! Whether it's:

  • πŸ› Bug reports β€” Found something broken? Let us know
  • πŸ’‘ Feature requests β€” Have an idea? Open a discussion
  • πŸ”§ Pull requests β€” Ready to code? Check out open issues
  • πŸ“– Documentation β€” Help others get started faster

πŸ’ Support the Project

This project represents countless hours of development, design, and testing. If it's helped you:

  • ⭐ Star the repo β€” It helps others discover the project
  • 🐦 Share it β€” Tell other restaurant owners and developers
  • β˜• Buy me a coffee β€” Fuel the late-night coding sessions

Buy Me a Coffee


πŸ“„ License

MIT License β€” Use it, modify it, ship it. Just give credit where it's due.


Built with ❀️ for restaurants that refuse to settle for outdated software

Get Started Β· Report Bug Β· Request Feature

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 88.9%
  • PLpgSQL 9.6%
  • CSS 1.4%
  • JavaScript 0.1%