coin-commerce

module
v0.0.0-...-2785c07 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2023 License: MIT

README

Coin Commerce - Golang Study Project

Welcome to Coin Commerce, a fictional personal project developed in Golang for study purposes. This application simulates a system for buying and selling fictional cryptoassets, featuring a distributed architecture with microservices, a custom load balancer, and communication through RabbitMQ using gRPC-encoded messages.

Project Structure

The project is organized as follows:

  • RESTful API: Responsible for receiving and routing requests to the appropriate microservices.
  • Users Microservice: Handles user-related operations, including registration, authentication, and profile information.
  • Orders Microservice: Manages operations related to buying and selling cryptoassets.
  • Load Balancer: Distributes request loads among microservices for efficient performance.
  • RabbitMQ: Facilitates communication between components through gRPC-encoded messages defined by .proto files.
  • PostgreSQL Database: Stores essential data for the system's operation.

Prerequisites

The only requirement for local execution is to have Golang installed in your environment.

Configuration and Docker Execution

  1. Clone the repository to your local environment.

    git clone https://github.com/guilherme-de-marchi/coin-commerce.git
    cd coin-commerce
    
  2. Compile the program.

    go build -o coin-commerce
    
  3. Run the Docker containers.

    docker compose up
    

Usage

The REST API provides endpoints for user and order operations. Refer to the API documentation for details on available endpoints and how to use them.

Contribution

If you are interested in contributing to the development of this study project, feel free to open issues, submit pull requests, or contact the development team.

License

This project is licensed under the MIT License.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL