Skip to content

miller-28/assignment-checkpoint

Repository files navigation

Order Processing Integration - Assignment

Overview

This project implements an Order Processing Integration system for a large-scale e-commerce platform, integrating Sales and Delivery systems to support a complete order lifecycle with reliable inter-service communication.

The implementation follows Hexagonal Architecture (Ports & Adapters) pattern with REST APIs built using Fastify (TypeScript), asynchronous messaging via RabbitMQ, event streaming with Kafka, and comprehensive observability.


Documentation

🏗️ System Design

📊 UML Diagrams

📸 UI Screenshots


🚀 Quick Start - Running the Platform

Prerequisites

  • Docker & Docker Compose installed
  • Stop any local services (PostgreSQL, Redis, RabbitMQ, Kafka) using default ports to avoid conflicts

Start the Platform

cd dockers
docker-compose up -d

Or use VS Code Tasks:

  • Press Ctrl+Shift+P → "Tasks: Run Task"
  • Select "🚀 Docker: Start All Services"

Wait 1-2 minutes for all services to become healthy.

Access the Dashboards

Dashboard URL Login
Sales http://localhost:8080 tester / tester
Delivery http://localhost:8081 tester / tester

APIs & Tools

Service URL
Sales API http://localhost:3000/api/v1
Delivery API http://localhost:3001/api/v1
RabbitMQ UI http://localhost:15672 (admin/admin)

Test the Flow

  1. Sales Dashboard → Create order → See "Pending Shipment"
  2. Delivery Dashboard → Ship → Deliver
  3. Sales Dashboard → Verify status updates

Stop the Platform

docker-compose down     # Stop (keeps data)
docker-compose down -v  # Stop + delete data

Or use VS Code Tasks:

  • Ctrl+Shift+P → "Tasks: Run Task"
  • "🛑 Docker: Stop All Services" - Stop all services
  • "🗑️ Docker: Remove All Services" - Stop and delete all data
  • "🔄 Docker: Restart All Services" - Restart everything
  • "🔨 Docker: Rebuild & Start All Services" - Full rebuild

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published