# Flowfish Development Makefile .PHONY: help setup-local deploy-k8s deploy-compose status logs clean test build docs # Default target help: ## Show this help message @echo "🐟🌊 Flowfish Development Commands" @echo @awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) ##@ 🏠 Local Development setup-local: ## Setup complete local environment (macOS) @echo "πŸš€ Setting up Flowfish local environment..." ./scripts/setup-local-env.sh deploy-k8s: ## Deploy to minikube (Kubernetes) @echo "☸️ Deploying Flowfish to minikube..." cd deployment/kubernetes-manifests && ./deploy-local.sh deploy deploy-compose: ## Start with Docker Compose @echo "🐳 Starting Flowfish with Docker Compose..." docker-compose -f deployment/docker-compose/docker-compose.yml up -d @echo "⏳ Waiting for services to be ready..." @sleep 30 @echo "βœ… Flowfish is ready at http://localhost:3000" status-k8s: ## Show Kubernetes deployment status @echo "πŸ“Š Checking Kubernetes deployment status..." cd deployment/kubernetes-manifests && ./deploy-local.sh status status-compose: ## Show Docker Compose status @echo "πŸ“Š Docker Compose services status:" docker-compose -f deployment/docker-compose/docker-compose.yml ps logs-k8s: ## Show Kubernetes logs cd deployment/kubernetes-manifests && ./deploy-local.sh logs logs-compose: ## Show Docker Compose logs docker-compose -f deployment/docker-compose/docker-compose.yml logs -f ##@ 🧹 Cleanup clean-k8s: ## Clean up Kubernetes deployment cd deployment/kubernetes-manifests && ./deploy-local.sh destroy clean-compose: ## Stop and remove Docker Compose services docker-compose -f deployment/docker-compose/docker-compose.yml down -v clean-minikube: ## Delete minikube cluster completely minikube delete clean-all: clean-compose clean-k8s clean-minikube ## Clean everything ##@ πŸ”§ Development build-backend: ## Build backend Docker image docker build -t flowfish/backend:dev ./backend build-frontend: ## Build frontend Docker image docker build -t flowfish/frontend:dev ./frontend build-all: build-backend build-frontend ## Build all Docker images test-backend: ## Run backend tests cd backend && python -m pytest test-frontend: ## Run frontend tests cd frontend && npm test lint-backend: ## Lint backend code cd backend && black . && flake8 . && mypy . lint-frontend: ## Lint frontend code cd frontend && npm run lint ##@ πŸ“š Documentation docs: ## Generate/serve documentation @echo "πŸ“š Documentation locations:" @echo " Executive Summary: docs/01-executive-summary.md" @echo " Feature List: docs/02-feature-list.md" @echo " Architecture: docs/03-architecture.md" @echo " API Docs: api/openapi-spec.yaml" @echo " Database Schemas: schemas/" @echo " UI Wireframes: ui/page-structure.md" serve-docs: ## Serve documentation with live reload # Requires npx/node npx @marp-team/marp-cli docs/ -s ##@ 🎯 Quick Actions quick-start-k8s: setup-local ## Complete Kubernetes setup (one command) @echo "πŸŽ‰ Flowfish is ready!" @echo " Access: http://flowfish.local" @echo " Login: admin / admin123" quick-start-compose: deploy-compose ## Quick Docker Compose start @echo "πŸŽ‰ Flowfish is ready!" @echo " Access: http://localhost:3000" @echo " Login: admin / admin123" demo: deploy-compose ## Start demo environment @echo "🎬 Starting Flowfish demo..." @echo "πŸ“– Open browser and follow these steps:" @echo " 1. Go to http://localhost:3000" @echo " 2. Login with admin/admin123" @echo " 3. Add a cluster (local minikube)" @echo " 4. Create an analysis" @echo " 5. View the live dependency map" ##@ ℹ️ Information info: ## Show environment information @echo "🐟 Flowfish Environment Information" @echo @echo "Prerequisites:" @command -v docker >/dev/null && echo " βœ… Docker: $(docker --version)" || echo " ❌ Docker: Not installed" @command -v kubectl >/dev/null && echo " βœ… kubectl: $(kubectl version --client --short)" || echo " ❌ kubectl: Not installed" @command -v minikube >/dev/null && echo " βœ… minikube: $(minikube version --short)" || echo " ❌ minikube: Not installed" @echo @if minikube status >/dev/null 2>&1; then \ echo "Minikube Status: βœ… Running"; \ echo " IP: $(minikube ip)"; \ echo " Profile: $(minikube profile)"; \ else \ echo "Minikube Status: ❌ Not running"; \ fi version: ## Show Flowfish version @echo "Flowfish Platform v1.0.0" @echo "https://github.com/yourusername/flowfish"