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

https://github.com/eliasbui/market-account

Vibe coding with cursor and task master ai
https://github.com/eliasbui/market-account

clean-architecture dotnet golang vibe-coding

Last synced: 5 months ago
JSON representation

Vibe coding with cursor and task master ai

Awesome Lists containing this project

README

          

# Market Account - Microservices Platform

A comprehensive e-commerce marketplace built with microservices architecture, implementing Clean Architecture principles across multiple programming languages.

## ๐Ÿ—๏ธ Architecture Overview

This project implements a polyglot microservices architecture with the following services:

- **User Service** (Go) - User authentication and management
- **Product Service** (C#/.NET) - Product catalog and inventory
- **Payment Service** (Python) - Payment processing and transactions
- **API Gateway** (Node.js) - GraphQL gateway with service orchestration

## ๐Ÿ› ๏ธ Technology Stack

### Core Technologies
- **Go** - User Service with Gin framework
- **C#/.NET 8** - Product Service with ASP.NET Core
- **Python** - Payment Service with FastAPI
- **Node.js** - API Gateway with Apollo GraphQL

### Infrastructure
- **PostgreSQL** - Primary database for all services
- **Redis** - Caching and session management
- **Apache Cassandra** - Analytics and time-series data
- **RabbitMQ** - Message queue for event-driven architecture
- **Docker & Docker Compose** - Containerization and orchestration

### Communication
- **GraphQL** - API Gateway and external client communication
- **gRPC** - Internal service-to-service communication
- **REST APIs** - External integrations
- **Message Queues** - Asynchronous event processing

## ๐Ÿ“ Project Structure

```
market-account/
โ”œโ”€โ”€ services/
โ”‚ โ”œโ”€โ”€ user-service-go/ # Go microservice
โ”‚ โ”‚ โ”œโ”€โ”€ domain/ # Business entities
โ”‚ โ”‚ โ”œโ”€โ”€ application/ # Use cases & interfaces
โ”‚ โ”‚ โ”œโ”€โ”€ infrastructure/ # Data access & external services
โ”‚ โ”‚ โ”œโ”€โ”€ web/ # HTTP handlers & routing
โ”‚ โ”‚ โ”œโ”€โ”€ go.mod
โ”‚ โ”‚ โ””โ”€โ”€ main.go
โ”‚ โ”‚
โ”‚ โ”œโ”€โ”€ product-service-dotnet/ # .NET microservice
โ”‚ โ”‚ โ”œโ”€โ”€ Domain/ # Domain layer
โ”‚ โ”‚ โ”œโ”€โ”€ Application/ # Application layer
โ”‚ โ”‚ โ”œโ”€โ”€ Infrastructure/ # Infrastructure layer
โ”‚ โ”‚ โ”œโ”€โ”€ WebApi/ # Presentation layer
โ”‚ โ”‚ โ””โ”€โ”€ ProductService.sln
โ”‚ โ”‚
โ”‚ โ”œโ”€โ”€ payment-service-python/ # Python microservice
โ”‚ โ”‚ โ”œโ”€โ”€ domain/ # Domain models
โ”‚ โ”‚ โ”œโ”€โ”€ application/ # Application services
โ”‚ โ”‚ โ”œโ”€โ”€ infrastructure/ # Infrastructure layer
โ”‚ โ”‚ โ”œโ”€โ”€ web/ # Web controllers
โ”‚ โ”‚ โ””โ”€โ”€ requirements.txt
โ”‚ โ”‚
โ”‚ โ””โ”€โ”€ api-gateway-node/ # Node.js API Gateway
โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ domain/ # GraphQL schemas
โ”‚ โ”‚ โ”œโ”€โ”€ application/ # Service orchestration
โ”‚ โ”‚ โ”œโ”€โ”€ infrastructure/ # External service clients
โ”‚ โ”‚ โ””โ”€โ”€ web/ # GraphQL resolvers
โ”‚ โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ docker-compose.yml # Multi-service orchestration
โ”œโ”€โ”€ .taskmaster/ # Task management
โ””โ”€โ”€ README.md
```

## ๐Ÿš€ Quick Start

### Prerequisites
- Docker & Docker Compose
- Git

### Development Setup

1. **Clone the repository**
```bash
git clone
cd market-account
```

2. **Start all services**
```bash
docker-compose up -d
```

3. **Verify services are running**
```bash
docker-compose ps
```

### Service Endpoints

| Service | Port | Endpoint | Description |
|---------|------|----------|-------------|
| API Gateway | 8000 | http://localhost:8000/graphql | GraphQL API |
| User Service | 8001 | http://localhost:8001/health | Go REST API |
| Product Service | 8002 | http://localhost:8002/health | .NET REST API |
| Payment Service | 8003 | http://localhost:8003/health | Python REST API |
| PostgreSQL | 5432 | localhost:5432 | Database |
| Redis | 6379 | localhost:6379 | Cache |
| RabbitMQ | 15672 | http://localhost:15672 | Management UI |
| Adminer | 8080 | http://localhost:8080 | Database Admin |

### Development Credentials

- **PostgreSQL**: postgres/postgres
- **RabbitMQ**: admin/admin123
- **Database**: marketplace

## ๐Ÿ›๏ธ Clean Architecture Implementation

Each microservice follows Clean Architecture principles with language-specific adaptations:

### Go Service (Feature-Based)
```
user-service-go/
โ”œโ”€โ”€ domain/ # Entities, value objects
โ”œโ”€โ”€ application/ # Use cases, interfaces
โ”œโ”€โ”€ infrastructure/ # Repository implementations
โ””โ”€โ”€ web/ # HTTP handlers, routing
```

### .NET Service (Layer-Based)
```
product-service-dotnet/
โ”œโ”€โ”€ Domain/ # ProductService.Domain
โ”œโ”€โ”€ Application/ # ProductService.Application
โ”œโ”€โ”€ Infrastructure/ # ProductService.Infrastructure
โ””โ”€โ”€ WebApi/ # ProductService.WebApi
```

### Python Service (Module-Based)
```
payment-service-python/
โ”œโ”€โ”€ domain/ # Models, enums, business rules
โ”œโ”€โ”€ application/ # Services, use cases
โ”œโ”€โ”€ infrastructure/ # Repositories, external APIs
โ””โ”€โ”€ web/ # FastAPI controllers
```

### Node.js Gateway (Layered)
```
api-gateway-node/src/
โ”œโ”€โ”€ domain/ # GraphQL schemas, types
โ”œโ”€โ”€ application/ # Service orchestration
โ”œโ”€โ”€ infrastructure/ # Service clients, adapters
โ””โ”€โ”€ web/ # Resolvers, middleware
```

## ๐Ÿ”ง Development Workflow

This project uses **Taskmaster AI** for task-driven development. Key commands:

```bash
# View all tasks
task-master list

# Get next task to work on
task-master next

# View specific task details
task-master show

# Update task progress
task-master update-subtask --id= --prompt="progress update"

# Mark tasks as complete
task-master set-status --id= --status=done
```

## ๐Ÿงช Testing Strategy

Each service includes comprehensive testing:

- **Unit Tests** - Domain logic and use cases
- **Integration Tests** - Repository and service interactions
- **Contract Tests** - API endpoint verification
- **End-to-End Tests** - Full service orchestration

## ๐Ÿ“ˆ Current Implementation Status

### โœ… Completed
- [x] Project structure and Clean Architecture foundation
- [x] Docker Compose infrastructure setup
- [x] Basic service scaffolding across all languages
- [x] Database and caching configuration
- [x] GraphQL schema definition

### ๐Ÿšง In Progress
- [ ] gRPC service communication
- [ ] REST API implementations
- [ ] Message queue integration
- [ ] Authentication & authorization
- [ ] Database migrations

### ๐Ÿ“‹ Upcoming
- [ ] Frontend React application
- [ ] AI-powered chatbot
- [ ] Admin dashboard
- [ ] Production deployment pipeline

## ๐Ÿค Contributing

1. Follow Clean Architecture principles
2. Maintain language-specific conventions
3. Update Taskmaster tasks for progress tracking
4. Include comprehensive tests
5. Document significant changes

## ๐Ÿ“š Documentation

- [Clean Architecture Guide](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
- [Microservices Patterns](https://microservices.io/)
- [Docker Compose Reference](https://docs.docker.com/compose/)
- [GraphQL Best Practices](https://graphql.org/learn/best-practices/)

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

---

**Built with โค๏ธ using Taskmaster AI for task-driven development**