
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
- Clone the repository:
git clone https://github.com/patricksferraz/pinned-menu.git
cd pinned-menu
- Copy the environment file and configure it:
cp .env.example .env
- Install dependencies:
go mod download
- Run the application:
make run
Docker Deployment
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add some amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π₯ Authors
- Patrick Ferraz - Initial work - GitHub
π Acknowledgments
- Fiber
- GORM
- Swagger
- And all other amazing open-source projects that made this possible!
βοΈ If you like this project, please give it a star on GitHub!