SpazaLink: Microservices platform empowering South Africa's 1.5M+ informal traders. Connecting spaza shops with wholesalers for bulk discounts, digital payments, and inventory access. Built with .NET 10, AWS (DynamoDB, Cognito), supporting USSD/SMS for feature phones. Solving price exploitation & cash dependency in township economies.
# SpazaLink
A digital platform connecting local spaza shops, tuck shops, and street vendors with their communities.
## Overview
SpazaLink is a microservices-based solution designed to digitize and connect small-scale traders (spaza shops, tuck shops, street vendors) in South African communities. The platform enables trader registration, verification, and management through a RESTful API with AWS DynamoDB persistence.
## Architecture
- **SpazaLink.Services.Traders**: Web API service for trader management
- **SpazaLink.Services.Inventory**: Product catalog and supplier management API
- **SpazaLink.Shared**: Common models, DTOs, enums, and utilities
- **SpazaLink.Services.Traders.Tests**: Unit tests for the trader service
- **SpazaLink.Services.Inventory.Tests**: Unit and integration tests for inventory service
## Features
- Trader registration and profile management
- Multi-tier trader classification (Bronze, Silver, Gold, Platinum)
- Support for various trader types (Spaza Shop, Street Vendor, Tuck Shop, Home Business)
- Product catalog management with supplier integration
- Supplier network with delivery area mapping
- Verification system with KYC capabilities
- Multiple payment method support
- Multi-channel notifications (SMS, WhatsApp, Email)
- AWS DynamoDB integration for scalable data storage
- Comprehensive unit testing with xUnit and Moq
## Trader Types
- **Spaza Shop**: Small convenience stores
- **Street Vendor**: Mobile/market stall traders
- **Tuck Shop**: School/office-based vendors
- **Home Business**: Home-operated businesses
## API Endpoints
### Traders Service
- `POST /createtrader` - Register a new trader
- `GET /traders/{id}` - Get trader by ID
- `GET /traders/area/{area}` - Get traders by area
### Inventory Service
- `GET /products` - Search products with filters (category, price range)
- `GET /products/{id}` - Get product details
- `GET /products/{id}/price` - Calculate price based on quantity
## Technology Stack
- **.NET 8.0**: M …