https://github.com/patricksferraz/pinned-menu
A high-performance menu management system built with Go, featuring real-time updates, multi-database support, and a modern API architecture. Perfect for restaurants and food service businesses.
https://github.com/patricksferraz/pinned-menu
api backend clean-architecture docker fiber go golang gorm kafka kubernetes menu-management microservices open-source postgresql rest-api restaurant-management sqlite swagger web-development
Last synced: 2 months ago
JSON representation
A high-performance menu management system built with Go, featuring real-time updates, multi-database support, and a modern API architecture. Perfect for restaurants and food service businesses.
- Host: GitHub
- URL: https://github.com/patricksferraz/pinned-menu
- Owner: patricksferraz
- License: mit
- Created: 2022-02-14T01:24:42.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-05-08T12:40:02.000Z (about 1 year ago)
- Last Synced: 2025-08-17T09:35:51.039Z (10 months ago)
- Topics: api, backend, clean-architecture, docker, fiber, go, golang, gorm, kafka, kubernetes, menu-management, microservices, open-source, postgresql, rest-api, restaurant-management, sqlite, swagger, web-development
- Language: Go
- Homepage:
- Size: 130 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pinned Menu ๐
[](https://goreportcard.com/report/github.com/patricksferraz/pinned-menu)
[](https://godoc.org/github.com/patricksferraz/pinned-menu)
[](https://opensource.org/licenses/MIT)
A modern, high-performance menu management system built with Go, featuring a robust API and scalable architecture.
## โจ Features
- ๐ High-performance API built with Fiber
- ๐ PostgreSQL and SQLite database support
- ๐ Real-time updates with Kafka integration
- ๐ Swagger API documentation
- ๐ณ Docker and Kubernetes support
- ๐ Environment-based configuration
- ๐งช Comprehensive testing suite
## ๐ ๏ธ Tech Stack
- **Backend**: Go 1.18+
- **Web Framework**: Fiber v2
- **Database**: PostgreSQL, SQLite
- **ORM**: GORM
- **Message Broker**: Kafka
- **Container**: Docker
- **Orchestration**: Kubernetes
- **Documentation**: Swagger
- **Testing**: Go testing framework
## ๐ Getting Started
### Prerequisites
- Go 1.18 or higher
- Docker and Docker Compose
- PostgreSQL (optional, SQLite is available for development)
- Kafka (optional, for real-time features)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/patricksferraz/pinned-menu.git
cd pinned-menu
```
2. Copy the environment file and configure it:
```bash
cp .env.example .env
```
3. Install dependencies:
```bash
go mod download
```
4. Run the application:
```bash
make run
```
### Docker Deployment
```bash
docker-compose up -d
```
## ๐ API Documentation
Once the application is running, you can access the Swagger documentation at:
```
http://localhost:8080/swagger/
```
## ๐๏ธ Project Structure
```
.
โโโ app/ # Application layer
โโโ cmd/ # Command line interface
โโโ domain/ # Domain models and interfaces
โโโ infra/ # Infrastructure implementations
โโโ k8s/ # Kubernetes configurations
โโโ utils/ # Utility functions
```
## ๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
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
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ฅ Authors
- Patrick Ferraz - Initial work - [GitHub](https://github.com/patricksferraz)
## ๐ Acknowledgments
- [Fiber](https://github.com/gofiber/fiber)
- [GORM](https://github.com/go-gorm/gorm)
- [Swagger](https://github.com/swaggo/swag)
- And all other amazing open-source projects that made this possible!
---
โญ๏ธ If you like this project, please give it a star on GitHub!