https://github.com/barahouei/clean-architecture-telegram-bot
A clean architecture implementation using the repository pattern for a Golang Telegram bot
https://github.com/barahouei/clean-architecture-telegram-bot
clean-architecture go golang multi-database multi-language repository-pattern telegram-bot
Last synced: 5 months ago
JSON representation
A clean architecture implementation using the repository pattern for a Golang Telegram bot
- Host: GitHub
- URL: https://github.com/barahouei/clean-architecture-telegram-bot
- Owner: barahouei
- License: mit
- Created: 2023-06-26T03:47:59.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-21T19:24:47.000Z (11 months ago)
- Last Synced: 2025-07-21T21:31:53.219Z (11 months ago)
- Topics: clean-architecture, go, golang, multi-database, multi-language, repository-pattern, telegram-bot
- Language: Go
- Homepage:
- Size: 53.7 KB
- Stars: 14
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# clean-architecture-telegram-bot
A sample project for creating telegram bots in Golang with clean architecture and repository pattern.
> [!NOTE]
> Although this is a telegram bot, clean architecture principles are the same for any types of web applications.
## Directory Explanation:
## /cmd
Main functionality for the application.
## /configs
Application's Configurations.
## /handlers
Handling all incoming requests.
This directory is responsible for defining endpoints to receive requests, and validating those incoming requests.
It contains no business logic and just passes validated requests to the appropriate services and returns the response to the client.
## /logs
Where all logs are saved.
## /models
Entities that are essential to the application, like structs and types.
## /pkg
Libraries or functions that help to maintain and improve the application.
## /repositories
Databases and their functionalities.
## /services
Services that application provides.
This is where core business logic exists, it works as a bridge between `handlers` and `repositories` directories.