Demo credentials (all with password Password1234$
):
Username | Role |
admin |
Administrator (full access) |
manager |
Manager (reporting and management) |
worker |
Staff (day-to-day operations) |
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.
- 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
- 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
- Framework: Spring Boot (Java)
- API Style: RESTful architecture
- Database: PostgreSQL
- Security: Spring Security with JWT
- Containerization: Docker and Docker Compose
- Deployment: Cloud-based deployment with automated pipelines
- Docker and Docker Compose installed on your system
- Git (optional, for cloning)
-
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
-
Start the Application
# Make sure Docker Desktop is running docker-compose up --build
This command builds and starts all containers (frontend, backend, and database).
-
Access the Application
- Open your browser and navigate to http://localhost:5173/manager
- Log in with default credentials:
- Username:
admin
- Password:
Password1234$
- Username:
-
Stopping the Application
# Press Ctrl+C in your terminal to stop services, then run: docker-compose down
A live demo is available at https://tt.gorocode.dev
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
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
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 credentials are configured in the docker-compose.yml
file:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=tabletalk
-
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
- Verify environment variables in
-
Database Connection Issues
- Check PostgreSQL logs in Docker
- Verify database credentials in
docker-compose.yml
- Ensure database initialization scripts are running correctly
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.
This project is licensed under the MIT License - see the individual LICENSE
files in each subproject for details.