Skip to content

IASSCMS/Logistics

Repository files navigation

🚚 Logistics Microservice Suite

This service powers intelligent shipment routing, assignment, fleet matching, and delivery monitoring — driven by Kafka and Django.


📦 Modules Overview

  • route_optimizer/: Optimizes delivery routes (independent service)
  • fleet/: Manages vehicle data and availability
  • assignment/: Assigns optimized routes to vehicles
  • scheduler/: Triggers assignment logic periodically (future: Celery/Lambda)
  • monitoring/: Logs delivery issues, performance (optional)
  • shipments/: Manages shipment lifecycle
  • map_service/ (optional): Calculates real-world distances via OpenRouteService or dummy matrix

🚀 Getting Started

🐳 Option A: Run with Docker (Recommended)

1. Clone the Repo

git clone https://github.com/IASSCMS/Logistics.git
cd Logistics

2. Create .env File

# .env
DJANGO_PORT=8000
KAFKA_BROKER_URL=kafka:9092
LOGISTICS_SERVICE_PORT=8002

3. Start All Services

docker-compose up --build

This spins up:

  • Django app
  • Kafka + Zookeeper

4. Visit in Browser

5. Run Django Tests in Docker

docker-compose run --rm logistics-service python manage.py test

🐍 Option B: Local Dev Setup (Without Docker)

1. Create & Activate Virtual Environment

python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

2. Install Dependencies

pip install -r requirements.txt

3. Setup Environment

Set these in .env or shell:

KAFKA_BROKER_URL=localhost:9092

4. Run Migrations

python manage.py migrate

5. Start Django Server

python manage.py runserver

📬 Kafka Setup Notes

This app connects to Kafka topic orders.created via kafka-python. Kafka is provided via confluentinc/cp-kafka in docker-compose.yml.

  • Send test events using publish_mock_event.py
  • Consumer listens via shipments.consumers.order_events

📂 Project Structure

logistics/
├── logistics_core/       # Django project
├── fleet/                # Vehicle models & APIs
├── shipments/            # Shipment status, tracking
├── assignment/           # Route-to-vehicle mapping
├── monitoring/           # Logs, dashboard, alerts
├── route_optimizer/      # Standalone optimization engine
├── manage.py
├── Dockerfile
├── entrypoint.sh
├── docker-compose.yml
└── requirements.txt

📄 API Documentation

Once server is running:


🔐 Admin Account

Create one manually:

python manage.py createsuperuser

Or inside Docker:

docker-compose exec logistics-service python manage.py createsuperuser

About

Logistics Management And Route Optimization Service for planning shipments for different orders

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages