Tender Management System

A comprehensive tender management backend system built with Go, following Clean Architecture principles with Domain-Driven Design (DDD) patterns.

📚 Documentation

All documentation has been organized in the docs/ directory for better structure and maintainability.

🚀 Quick Start

  1. Setup Environment

    # Follow setup guides in docs/setup/
    
  2. Run the Application

    make run
    
  3. Access API Documentation

    • Swagger UI: http://localhost:8081/swagger/index.html
    • API Base URL: http://localhost:8081/api/v1

🏗️ Architecture

This system implements Clean Architecture with:

  • Domain Layer: Business entities and core rules
  • Service Layer: Business logic and use cases
  • Handler Layer: HTTP controllers and request handling
  • Repository Layer: Data access implementations
  • Infrastructure Layer: External dependencies

📋 Key Features

  • Clean Architecture: DDD principles with clear separation of concerns
  • MongoDB Integration: Robust data persistence with proper indexing
  • Structured Logging: Comprehensive logging with context
  • Input Validation: Govalidator integration for request validation
  • Error Handling: Consistent error responses and logging
  • Time Handling: Unix timestamps throughout the application
  • API Documentation: Auto-generated Swagger documentation

🔧 Development

Prerequisites

  • Go 1.23+
  • MongoDB 4.4+
  • Valid MongoDB connection

Project Structure

tm_back/
├── cmd/web/                    # Application entry point
├── internal/                   # Private application code
│   ├── customer/              # Customer domain
│   └── ...                    # Other domains
├── pkg/                       # Public packages
│   ├── logger/               # Logging utilities
│   ├── mongo/                # MongoDB utilities
│   └── response/             # API response utilities
├── docs/                      # 📚 All documentation
└── config.yaml               # Configuration file

📞 Support

For detailed documentation, guides, and examples, please visit the docs/ directory.


Version: 1.0.0
Last Updated: $(date)

S
Description
No description provided
Readme 39 MiB
Languages
Go 99.2%
Shell 0.5%
Makefile 0.2%
Dockerfile 0.1%