https://github.com/sazardev/go-clean-menu
https://github.com/sazardev/go-clean-menu
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sazardev/go-clean-menu
- Owner: sazardev
- License: mit
- Created: 2025-03-26T02:40:34.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-24T17:59:31.000Z (about 1 year ago)
- Last Synced: 2025-06-30T08:47:38.662Z (12 months ago)
- Language: HTML
- Size: 325 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: history.go
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Go-Clean-Menu ๐ฝ๏ธ
[](https://golang.org)
[](LICENSE)
[](https://www.docker.com/)
[](https://www.postgresql.org/)
[](https://htmx.org/)
[](https://getbootstrap.com/)
A modern, elegant, and easy-to-use restaurant management system built with Go. Go-Clean-Menu helps you manage orders, kitchen operations, menus, and more with a clean, intuitive interface.
## ๐ Features
- **๐ Order Management**: Create, edit, and track orders in real-time
- **๐จโ๐ณ Kitchen Display System**: Streamline kitchen operations with a dedicated view
- **๐งพ Menu Administration**: Easily manage your products and categories
- **๐ Real-time Updates**: WebSocket-based updates across the application
- **๐ Sales Analytics**: Track sales, popular products, and kitchen performance
- **๐๏ธ Order History**: Complete historical record of all orders
- **๐๏ธ Table Management**: Manage restaurant tables and their status
- **๐ง System Configuration**: Customize settings to match your restaurant needs
- **๐พ Data Backup**: Create and download database backups
- **๐ Light/Dark Mode**: Toggle between light and dark themes
- **๐ Self-hosted**: Full control over your data and deployment
- **๐ฑ Responsive Design**: Works on desktop and mobile devices
## ๐ธ Screenshots
### Dashboard

### Orders Management

## ๐ Getting Started
### Quick Start with Docker Compose
1. Clone the repository:
```bash
git clone https://github.com/CerberusProgrammer/go-clean-menu.git
cd go-clean-menu
```
2. Start with Docker Compose:
```bash
docker-compose up -d
```
3. Access the application:
```
http://localhost:3001
```
### Manual Installation
#### Prerequisites:
- Go 1.24+
- PostgreSQL 13+
#### Steps:
1. Clone the repository and navigate to the project directory
2. Configure the database in `.env` file
3. Install dependencies: `go mod download`
4. Build the application: `go build -o app`
5. Run the application: `./app`
## ๐ง Architecture
Go-Clean-Menu follows clean architecture principles with a focus on maintainability and testability:
```
go-clean-menu/
โโโ handlers.go # HTTP request handlers
โโโ helpers.go # Utility functions
โโโ history.go # Order history functionality
โโโ kitchen.go # Kitchen display system
โโโ main.go # Application entry point
โโโ menu.go # Menu management
โโโ models.go # Data models
โโโ orders.go # Order processing logic
โโโ settings.go # Application settings
โโโ tables.go # Table management
โโโ templates/ # HTML templates (using Go templates)
โ โโโ layouts/ # Layout templates
โ โโโ partials/ # Reusable components
โโโ Dockerfile # Docker configuration
โโโ docker-compose.yml # Docker Compose configuration
```
## ๐ ๏ธ Tech Stack
- **Backend**: Go with Fiber framework
- **Database**: PostgreSQL
- **Frontend**: HTML, Bootstrap 5, HTMX
- **Real-time Updates**: WebSockets
- **Containerization**: Docker
- **Design Pattern**: MVC architecture
- **Template Engine**: Go HTML Templates
## ๐ป Development
### Environment Variables
Configure the application by modifying the `.env` file:
```
DB_HOST=db
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=go_clean_menu
PORT=3001
```
### Project Structure
- **Templates**: HTML files in the `templates` directory
- **Static Assets**: CSS, JS, and images in the `static` directory
- **Logic**: Go files in the root directory, separated by functionality
- **Database**: PostgreSQL with models defined in `models.go`
### Key Components
- **Order Lifecycle**: pending โ in_progress โ ready โ to_pay โ completed
- **Kitchen Display**: Real-time view of pending orders for kitchen staff
- **Analytics**: Sales tracking and kitchen performance metrics
- **Product Management**: Categories and products with availability status
## ๐ค Contributing
Contributions are welcome! Here's how you can help:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
Please ensure your code follows the project's coding style and includes appropriate tests.
## ๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
## ๐ Acknowledgments
- [Fiber](https://github.com/gofiber/fiber) - Fast HTTP framework for Go
- [HTMX](https://htmx.org/) - High-power tools for HTML
- [Bootstrap](https://getbootstrap.com/) - Frontend toolkit
- [Inter Font](https://fonts.google.com/specimen/Inter) - Clean, modern typography
---
Made with โค๏ธ by [CerberusProgrammer](https://github.com/CerberusProgrammer)
[โฌ Back to top](#go-clean-menu-)