pratilipi

module
v0.0.0-...-01a1143 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2024 License: MIT

README

Project Overview

Purpose

This project consists of three microservices (user-service, product-service, and order-service) that manage user registration, product inventory, and order placement. The services communicate asynchronously using RabbitMQ for event-driven architecture and use PostgreSQL for data persistence.

Key Features

  • Microservices: Independent services for users, products, and orders.
  • Asynchronous Communication: RabbitMQ for event-driven message passing.
  • Data Persistence: PostgreSQL with migrations handled via Golang's sqlx.
  • Caching: Redis is used for caching to improve read performance.
  • Authentication: JWT-based authentication in the user-service.

Technologies

  • Golang (Fiber Framework)
  • PostgreSQL
  • RabbitMQ
  • Redis
  • Docker (for containerization)
  • gqlgen (for the GraphQL API gateway)

Documentation


Local Setup

Follow these steps to run the project locally:

  1. Clone the repository:

    git clone https://github.com/ajaysinghpanwar2002/pratilipi.git
    
  2. Navigate into the repository:

    cd pratilipi
    
  3. Build the services:

    make build
    
  4. Start the services using Docker:

    make start
    
  5. Accessing the services:

    • GraphQL Gateway: http://localhost:8080
    • User Service: http://localhost:8081
    • Product Service: http://localhost:8082
    • Order Service: http://localhost:8083

Postman Collection

I am providing a Postman collection to test the API endpoints. You can download it using the link: Postman Collection

Jump to

Keyboard shortcuts

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