Skip to content

Davaakhatan/zero-to-running

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Zero-to-Running Developer Environment

One command. Full environment. Zero configuration.
A developer environment framework that enables new and experienced developers to set up a complete multi-service application environment with a single command (make dev). No more hours of configuration, dependency management, or "works on my machine" issues.

πŸš€ Quick Start

Local Development

# Clone the repository
git clone <repo-url>
cd DevEnv

# Start the entire development environment
make dev

# Access your services
open http://localhost:3000      # Application Frontend (your app)
open http://localhost:3001      # Dashboard Frontend (monitoring)
open http://localhost:3003      # Backend API

Production Deployment (Kubernetes) - Optional

For production deployments or demonstrations, you can deploy to AWS EKS, Azure AKS, or GCP GKE:

cd k8s
./deploy.sh  # Interactive script - choose your cloud provider

Supported Cloud Providers:

  • 🟠 AWS EKS - Amazon Elastic Kubernetes Service
  • πŸ”΅ Azure AKS - Azure Kubernetes Service
  • 🟒 GCP GKE - Google Kubernetes Engine

Note: Kubernetes deployment is optional. The primary goal is local development setup with make dev. See k8s/README.md for detailed deployment guides.

πŸ“‹ Overview

Our Mission: Help developers (new and experienced) get their development environment running in minutes, not hours.

The Zero-to-Running Developer Environment is a framework that enables developers to set up a complete multi-service application with a single command (make dev). No more hours of configuration, dependency management, or "works on my machine" issues.

For New Developers

  • Clone the repo, run make dev, start coding
  • All services (database, cache, API, dashboard) are automatically configured
  • Visual dashboard shows everything working in real-time

For Experienced Developers

  • Skip the boilerplate setup
  • Focus on building features, not infrastructure
  • Consistent environment across team members
  • Easy to add your own services and applications

Note: Public URLs shown in documentation are temporary demonstrations for project reviewers. The primary use case is local development setup.

What It Does

  • Single Command Setup: make dev provisions all services
  • Automatic Orchestration: Handles service dependencies and ordering
  • Visual Dashboard: Real-time monitoring of services, logs, and health
  • Dynamic Setup Page: Cloud-aware prerequisites and service discovery
  • Multi-Cloud Support: Deploy to AWS, Azure, or GCP with consistent tooling
  • Zero Configuration: Works out of the box with sensible defaults
  • Clean Teardown: make down removes everything cleanly

πŸ—οΈ Architecture

Your Application (Port 3000) ────┐
                                  β”œβ”€β”€β†’ Backend API (Fastify) β†’ PostgreSQL + Redis
Dashboard Frontend (Port 3001) β”€β”€β”€β”˜
                    ↓
            Docker Compose Orchestration
                    ↓
         Kubernetes (AWS/Azure/GCP)

Note: This is a framework/template. You can add your own applications and services. The example shows a typical setup with one application frontend, but you can add multiple applications as needed.

πŸ› οΈ Technology Stack

  • Frontend: TypeScript, React, Next.js 16, Tailwind CSS, Vite (CollabCanva)
  • Backend: Node.js, Fastify, TypeScript
  • Database: PostgreSQL
  • Cache: Redis
  • Local Development: Docker Compose (orchestration)
  • Production Deployment: Kubernetes (AWS EKS, Azure AKS, GCP GKE)
  • Containerization: Docker
  • Container Registry: ECR (AWS), ACR (Azure), GCR/Artifact Registry (GCP)

πŸ“ Project Structure

DevEnv/
β”œβ”€β”€ app-frontend/           # Application Frontend (Next.js) - Port 3000 (your app)
β”œβ”€β”€ dashboard-frontend/     # Dashboard Frontend (Next.js) - Port 3001
β”œβ”€β”€ backend/                # Backend API (Fastify) - Port 3003
β”œβ”€β”€ collabcanva-app/        # Example: CollabCanva Application (Vite) - Port 3002
β”œβ”€β”€ config/                 # Environment configurations
β”‚   β”œβ”€β”€ dev.yaml           # Development config
β”‚   β”œβ”€β”€ staging.yaml        # Staging config
β”‚   └── production.yaml     # Production config
β”œβ”€β”€ k8s/                    # Kubernetes manifests
β”‚   β”œβ”€β”€ common/            # Shared manifests
β”‚   β”œβ”€β”€ aws/               # AWS EKS specific (with build scripts)
β”‚   β”œβ”€β”€ azure/             # Azure AKS specific (with build scripts)
β”‚   └── gcp/               # GCP GKE specific (with build scripts)
β”œβ”€β”€ docs/                   # Documentation
β”‚   β”œβ”€β”€ PRD.md
β”‚   β”œβ”€β”€ Architecture.md
β”‚   β”œβ”€β”€ Phases.md
β”‚   β”œβ”€β”€ tasks.md
β”‚   └── QUICK_START.md
β”œβ”€β”€ memory-bank/           # Project memory and context
β”œβ”€β”€ docker-compose.yml      # Docker Compose configuration
β”œβ”€β”€ Makefile                # Orchestration commands
└── README.md               # This file

🎯 Key Features

  • βœ… Single Command Setup: make dev brings up entire stack
  • βœ… Dynamic Setup Wizard: Cloud-aware prerequisites checker and progress tracking
  • βœ… Service Monitoring: Real-time status of all services (dynamically discovered)
  • βœ… Health Checks: Automatic health monitoring with auto-refresh
  • βœ… Log Aggregation: Centralized log viewing with filtering
  • βœ… Configuration Management: Externalized config with UI
  • βœ… Resource Monitoring: CPU, memory, network usage tracking
  • βœ… Quick Actions: Start/stop/restart services individually
  • βœ… Dependency Graph: Visual service dependency visualization
  • βœ… Environment Profiles: Dev, Staging, Production configs
  • βœ… Multi-Cloud Support: Kubernetes manifests for AWS, Azure, GCP
  • βœ… Build Scripts: Automated image building for all cloud providers
  • βœ… Real-Time Updates: Auto-refreshing dashboards and logs
  • βœ… Cloud Detection: Automatic cloud provider detection for prerequisites

πŸ“š Documentation

All documentation is located in the docs/ directory:

🚦 Current Status

  • βœ… MVP Complete: Local development fully functional
  • βœ… Frontend: 100% Complete (Application + Dashboard + CollabCanva)
  • βœ… Backend: 100% Complete (All APIs implemented)
  • βœ… Infrastructure: 100% Complete (Docker Compose)
  • βœ… Orchestration: 100% Complete (Makefile commands)
  • βœ… Kubernetes: Manifests ready for AWS EKS, Azure AKS, GCP GKE
  • βœ… Build Scripts: Automated image building for all cloud providers
  • βœ… Cloud Detection: Automatic cloud provider detection
  • βœ… Dynamic Setup: Cloud-aware prerequisites and service discovery
  • βœ… Environment Profiles: Dev, Staging, Production configs
  • βœ… Documentation: Comprehensive guides and docs

🎯 Success Metrics

  • βœ… Setup Time: < 10 minutes (achieved: ~5 minutes with make dev)
  • βœ… Coding Time: 80%+ time spent writing code vs managing infrastructure (achieved)
  • βœ… Zero Configuration: Works out of the box (achieved)
  • ⏳ Support Reduction: 90% decrease in environment-related issues (to be measured)

Goal: New developers should be able to clone, run make dev, and start coding within 5 minutes.

🌍 Environment Profiles

Support for multiple environments:

# Development (default)
make dev

# Staging
make dev-staging

# Production
make dev-production

Each environment uses its own configuration file (config/dev.yaml, config/staging.yaml, config/production.yaml).

See config/README.md for details.

🐳 Core Services

The framework includes these core infrastructure services:

  1. PostgreSQL (Port 5432) - Database
  2. Redis (Port 6379) - Cache
  3. Backend API (Port 3003) - Fastify API server
  4. Dashboard Frontend (Port 3001) - Monitoring dashboard

Your Applications: Add your own applications (like app-frontend on port 3000). The dashboard will automatically discover and monitor all services you add. See docs/Architecture.md for integration examples.

☁️ Multi-Cloud Deployment

Build and Push Images

Each cloud provider has automated build scripts:

AWS EKS

cd k8s/aws
./build-backend.sh
./build-dashboard.sh
# Build your application images as needed

Azure AKS

cd k8s/azure
./build-backend.sh
./build-dashboard.sh
# Build your application images as needed

GCP GKE

cd k8s/gcp
./build-backend.sh
./build-dashboard.sh
# Build your application images as needed

Note: Build scripts are provided for core services. You'll need to create build scripts for your own applications following the same pattern.

Deploy

cd k8s
./deploy.sh  # Choose your cloud provider

See k8s/README.md for detailed instructions.

πŸ§ͺ Testing

Test Environment Profiles

# Test development environment
make dev
curl http://localhost:3003/api/config | jq '.services.database.name'
# Should show: "devenv"

# Test staging environment
make down && make dev-staging
curl http://localhost:3003/api/config | jq '.services.database.name'
# Should show: "devenv_staging"

# Test production environment
make down && make dev-production
curl http://localhost:3003/api/config | jq '.services.database.name'
# Should show: "devenv_production"

See config/TEST.md for comprehensive testing guide.

🀝 Contributing

This is a developer environment setup tool. See docs/tasks.md for current development tasks.

πŸ“ License

[Add your license here]


Organization: Wander
Project ID: 3MCcAvCyK7F77BpbXUSI_1762376408364 Status: MVP Complete - Production Ready

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors