Files
tm_back/Makefile
T
n.nakhostin 21b736b55b Implement Feedback Management System with CRUD Operations and API Enhancements
- Introduced a new feedback management system, including the creation of feedback entities, services, and repositories.
- Implemented CRUD operations for feedback, allowing users to submit likes and dislikes on tenders.
- Developed administrative endpoints for listing and retrieving feedback with comprehensive filtering options.
- Enhanced public API to allow users to view feedback related to tenders.
- Updated Swagger documentation to reflect new feedback endpoints and their functionalities.
- Removed obsolete configuration file `config.yaml` as part of the transition to a modular configuration system.
- Ensured adherence to Clean Architecture principles throughout the implementation.
2025-08-16 16:00:03 +03:30

128 lines
3.3 KiB
Makefile

# Tender Management Backend Makefile
.PHONY: help build run test clean docker-build docker-run docs run-docs
# Default target
help:
@echo "Available targets:"
@echo " build - Build the web server"
@echo " build-mac - Build for macOS (Intel)"
@echo " build-mac-arm64 - Build for macOS (Apple Silicon)"
@echo " build-windows - Build for Windows (64-bit)"
@echo " build-windows-32 - Build for Windows (32-bit)"
@echo " build-all - Build for all platforms"
@echo " run - Run the web server"
@echo " test - Run tests"
@echo " clean - Clean build artifacts"
@echo " docker-build - Build Docker image"
@echo " docker-run - Run Docker container"
# Build the web server
build:
@echo "Building web server..."
@mkdir -p bin
@go build -o bin/web ./cmd/web
@echo "Build completed successfully!"
# Build for macOS (Intel)
build-mac:
@echo "Building web server for macOS (Intel)..."
@mkdir -p bin
@GOOS=darwin GOARCH=amd64 go build -o bin/web-mac ./cmd/web
@echo "macOS Intel build completed successfully!"
# Build for macOS (Apple Silicon)
build-mac-arm64:
@echo "Building web server for macOS (Apple Silicon)..."
@mkdir -p bin
@GOOS=darwin GOARCH=arm64 go build -o bin/web-mac-arm64 ./cmd/web
@echo "macOS ARM64 build completed successfully!"
# Build for Windows (64-bit)
build-windows:
@echo "Building web server for Windows (64-bit)..."
@mkdir -p bin
@GOOS=windows GOARCH=amd64 go build -o bin/web.exe ./cmd/web
@echo "Windows 64-bit build completed successfully!"
# Build for Windows (32-bit)
build-windows-32:
@echo "Building web server for Windows (32-bit)..."
@mkdir -p bin
@GOOS=windows GOARCH=386 go build -o bin/web-32.exe ./cmd/web
@echo "Windows 32-bit build completed successfully!"
# Build for all platforms
build-all: build build-mac build-mac-arm64 build-windows build-windows-32
@echo "All platform builds completed successfully!"
# Run the web server
run: build
@echo "Starting web server..."
@./bin/web
# Run tests
test:
@echo "Running tests..."
@go test ./...
# Clean build artifacts
clean:
@echo "Cleaning build artifacts..."
@rm -rf bin/
@go clean
# Build Docker image
docker-build:
@echo "Building Docker image..."
@docker build -t tender-management-api .
# Run Docker container
docker-run:
@echo "Running Docker container..."
@docker run -p 8081:8081 tender-management-api
# Development with hot reload (requires air)
dev:
@echo "Starting development server with hot reload..."
@air
# Install development dependencies
install-dev:
@echo "Installing development dependencies..."
@go install github.com/cosmtrek/air@latest
# Format code
fmt:
@echo "Formatting code..."
@go fmt ./...
# Vet code
vet:
@echo "Vetting code..."
@go vet ./...
# Lint code (requires golangci-lint)
lint:
@echo "Linting code..."
@golangci-lint run
# Generate API documentation
# Marked as .PHONY to avoid collision with the top-level docs directory
docs:
@echo "Generating API documentation..."
@swag init -g cmd/web/main.go -o cmd/web/docs
@echo "Swagger documentation generated successfully!"
# Run server with documentation
run-docs: docs run
# Database migrations (placeholder)
migrate:
@echo "Running database migrations..."
@echo "TODO: Implement database migrations"
# Seed database (placeholder)
seed:
@echo "Seeding database..."
@echo "TODO: Implement database seeding"