8000 GitHub - gorocode/tt-bar-manager: Table Talk is a comprehensive bar and restaurant management application designed to streamline daily operations, from table and order management to menu and product customization. The application consists of a React/TypeScript frontend and a Spring Boot backend, all orchestrated via Docker Compose for easy deployment.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Table Talk is a comprehensive bar and restaurant management application designed to streamline daily operations, from table and order management to menu and product customization. The application consists of a React/TypeScript frontend and a Spring Boot backend, all orchestrated via Docker Compose for easy deployment.

License

Notifications You must be signed in to change notification settings

gorocode/tt-bar-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Table Talk - Bar & Restaurant Management System

React TypeScript Spring Boot Docker PostgreSQL

Demo credentials (all with password Password1234$):

Username Role
admin Administrator (full access)
manager Manager (reporting and management)
worker Staff (day-to-day operations)

πŸ“‹ Overview

Table Talk is a comprehensive bar and restaurant management application designed to streamline daily operations, from table and order management to menu and product customization. The application consists of a React/TypeScript frontend and a Spring Boot backend, all orchestrated via Docker Compose for easy deployment.


✨ Features

  • Interactive Table Management: Visualize and manage tables with dynamic, customizable layouts
  • Comprehensive Order Handling: Create, split, merge, and track orders in real-time
  • Complete Menu System: Organize menus with categories, products, and allergen information
  • Real-time Communication: Instant kitchen notifications via WebSockets
  • Invoicing & Payments: Generate invoices and process payments through multiple methods
  • Customizable UI: Theme system for adapting the interface to your needs
  • Role-Based Access: Different interfaces for management, bar staff, and kitchen staff

πŸ› οΈ Technology Stack

Frontend

  • Framework: React with TypeScript
  • Styling: TailwindCSS for responsive design
  • Build Tool: Vite for fast development
  • State Management: React Context API
  • Real-time: StompJS for WebSocket communication

Backend

  • Framework: Spring Boot (Java)
  • API Style: RESTful architecture
  • Database: PostgreSQL
  • Security: Spring Security with JWT

DevOps

  • Containerization: Docker and Docker Compose
  • Deployment: Cloud-based deployment with automated pipelines

πŸš€ Quick Start Guide

Prerequisites

  • Docker and Docker Compose installed on your system
  • Git (optional, for cloning)

Installation

  1. Get the Project

    # Option 1: Clone using Git
    git clone https://gitlab.com/goromigue/tt-bar-manager.git
    cd tt-bar-manager
    
    # Option 2: Download ZIP from GitLab and extract to your preferred location
  2. Start the Application

    # Make sure Docker Desktop is running
    docker-compose up --build

    This command builds and starts all containers (frontend, backend, and database).

  3. Access the Application

  4. Stopping the Application

    # Press Ctrl+C in your terminal to stop services, then run:
    docker-compose down

🌐 Live Demo

A live demo is available at https://tt.gorocode.dev


πŸ—Ό Project Structure

tt-bar-manager/
β”œβ”€β”€ docker-compose.yml       # Orchestrates all services
β”œβ”€β”€ README.md               # Main project documentation
β”œβ”€β”€ API.md                  # API documentation
β”‚
β”œβ”€β”€ tt-spring/                # Backend (Spring Boot)
β”‚   β”œβ”€β”€ Dockerfile          # Backend container configuration
β”‚   β”œβ”€β”€ pom.xml             # Maven dependencies
β”‚   β”œβ”€β”€ src/                # Source code
β”‚   β”‚   β”œβ”€β”€ main/java/com/goro/tabletalk/
β”‚   β”‚   β”‚   β”œβ”€β”€ boot/       # Application bootstrapping
β”‚   β”‚   β”‚   β”œβ”€β”€ config/     # Configuration classes
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/ # API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ dto/        # Data Transfer Objects
β”‚   β”‚   β”‚   β”œβ”€β”€ entity/     # JPA entities
β”‚   β”‚   β”‚   β”œβ”€β”€ mapper/     # Object mappers
β”‚   β”‚   β”‚   β”œβ”€β”€ repository/ # Database access
β”‚   β”‚   β”‚   └── service/    # Business logic
β”‚   β”‚   └── resources/      # Application properties
β”‚   └── README.md           # Backend documentation
β”‚
└── tt-react/               # Frontend (React)
    β”œβ”€β”€ Dockerfile          # Frontend container configuration
    β”œβ”€β”€ package.json        # npm dependencies
    β”œβ”€β”€ src/                # Source code
    β”‚   β”œβ”€β”€ api/            # API services
    β”‚   β”œβ”€β”€ components/     # UI components
    β”‚   β”œβ”€β”€ context/        # React contexts
    β”‚   β”œβ”€β”€ pages/          # Application pages
    β”‚   └── utils/          # Helper functions
    └── README.md           # Frontend documentation

πŸ”‘ Environment Variables

Frontend (.env)

VITE_API_URL=http://localhost:8080
VITE_WS_URL=ws://localhost:8080/
VITE_PAYPAL_ID=your-paypal-client-id
VITE_CLOUDINARY_NAME=your-cloudinary-name
VITE_CLOUDINARY_PRESENT=your-cloudinary-upload-preset
VITE_QR_SALT=tt-bar-manager

Backend (application.properties)

The main configuration is handled through Spring Boot application properties and Docker environment variables.

FRONTEND_URL=http://localhost:5173
SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-db:5432/tabletalk
SPRING_DATASOURCE_USERNAME=user
SPRING_DATASOURCE_PASSWORD=tableuser
SPRING_JPA_HIBERNATE_DDL_AUTO=update
SPRING_JPA_SHOW_SQL=false
JWT_SECRET=yourStrongSecretKeyHere
JWT_EXPIRATION_MS=86400000

Database

Database credentials are configured in the docker-compose.yml file:

POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=tabletalk

πŸ”§ Troubleshooting

Common Issues

  • Docker Services Not Starting

    • Ensure Docker Desktop is running
    • Check if required ports (5173, 8080, 5432) are available
    • Try stopping existing containers: docker-compose down
    • Clear Docker cache: docker system prune
  • Frontend Not Connecting to Backend

    • Verify environment variables in .env
    • Check backend logs for errors
    • Ensure backend is properly running on port 8080
  • Database Connection Issues

    • Check PostgreSQL logs in Docker
    • Verify database credentials in docker-compose.yml
    • Ensure database initialization scripts are running correctly

πŸ”’ Security

The application uses JWT (JSON Web Tokens) for authentication. Default credentials are provided for testing purposes only. In production, it is strongly recommended to change these credentials and implement proper security measures.


πŸ“€ License

This project is licensed under the MIT License - see the individual LICENSE files in each subproject for details.

About

Table Talk is a comprehensive bar and restaurant management application designed to streamline daily operations, from table and order management to menu and product customization. The application consists of a React/TypeScript frontend and a Spring Boot backend, all orchestrated via Docker Compose for easy deployment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0