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

https://github.com/gjovs/go-clean-architecture

Welcome to the Clean Architecture At Go repository! This project follows the principles of Clean Architecture in Go, providing a scalable and maintainable foundation for building robust applications. ๐Ÿ› ๏ธ
https://github.com/gjovs/go-clean-architecture

clean clean-architecture go go-clean-architecture golang

Last synced: about 1 month ago
JSON representation

Welcome to the Clean Architecture At Go repository! This project follows the principles of Clean Architecture in Go, providing a scalable and maintainable foundation for building robust applications. ๐Ÿ› ๏ธ

Awesome Lists containing this project

README

        

# Go Clean Architecture Repository ๐Ÿš€

Welcome to the Clean Architecture At Go repository! This project follows the principles of Clean Architecture in Go, providing a scalable and maintainable foundation for building robust applications. ๐Ÿ› ๏ธ

## Table of Contents ๐Ÿ“š

- [Go Clean Architecture Repository ๐Ÿš€](#go-clean-architecture-repository-)
- [Table of Contents ๐Ÿ“š](#table-of-contents-)
- [Introduction ๐ŸŒ](#introduction-)
- [Getting Started ๐Ÿšฆ](#getting-started-)
- [Project Structure ๐Ÿ—๏ธ](#project-structure-๏ธ)
- [Dependencies ๐Ÿ“ฆ](#dependencies-)
- [Usage ๐Ÿš€](#usage-)
- [Testing ๐Ÿงช](#testing-)
- [Contributing ๐Ÿค](#contributing-)
- [License ๐Ÿ“„](#license-)

## Introduction ๐ŸŒ

This project aims to demonstrate the implementation of Clean Architecture in Go, separating concerns into distinct layers to achieve better testability, maintainability, and flexibility. The architecture consists of the following layers:

- **Entities**: Represents the core business logic.
- **Use Cases**: Contains application-specific business rules.
- **Interfaces**: Defines the boundaries of the application.
- **Adapters**: Implements the interfaces, connecting the application to external frameworks or tools.

## Getting Started ๐Ÿšฆ

To get started with this project, make sure you have Go installed on your machine. Clone the repository and run:

```bash
go build -o ./bin/ source.go
```

This will build and execute the application.

## Project Structure ๐Ÿ—๏ธ

The project structure follows the Clean Architecture principles, separating concerns into different packages. Here's an overview:

```
/api
/configs
/cmd
/app
/internal
/entities
/usecases
/event
/infra
/pkg
/types
```

- **cmd**: Contains the application's entry point and configuration.
- **internal**: Holds the core application code.
- **pkg**: Houses reusable packages.

## Dependencies ๐Ÿ“ฆ

This project uses default golang dependency managing tool for managing external dependencies. To install the required dependencies, run:

```bash
go install
```

## Usage ๐Ÿš€

Describe how to use your application or library here. Include code snippets or examples to guide users.

## Testing ๐Ÿงช

Ensure that all unit tests and integration tests pass before submitting a pull request. Run the tests using:

```bash
go test ./...
```

## Contributing ๐Ÿค

Contributions are welcome! Please follow our [Contribution Guidelines](CONTRIBUTING.md) when submitting pull requests.

## License ๐Ÿ“„

This project is licensed under the [MIT License](LICENSE.md) - see the [LICENSE.md](LICENSE.md) file for details.