An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# Pinned Menu ๐Ÿš€

[![Go Report Card](https://goreportcard.com/badge/github.com/patricksferraz/pinned-menu)](https://goreportcard.com/report/github.com/patricksferraz/pinned-menu)
[![GoDoc](https://godoc.org/github.com/patricksferraz/pinned-menu?status.svg)](https://godoc.org/github.com/patricksferraz/pinned-menu)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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!