CIA/e-voting-system/dev-mode.sh
Alexis Bruneteau 41e7fc08ed feat: Add development mode for Next.js frontend with hot reload and verbose logging
Add comprehensive development setup for frontend debugging and rapid iteration.

FEATURES:
✓ Hot Module Reload (HMR) - auto-refresh on file changes
✓ Detailed Logging - all console logs visible in Docker output
✓ TypeScript Checking - real-time type validation
✓ Source Maps - easier debugging in DevTools
✓ Fast Iteration - no container rebuild needed for code changes

FILES ADDED:
- docker-compose.dev.yml - compose override with dev-specific settings
- docker/Dockerfile.frontend.dev - updated with dev environment variables
- dev-mode.sh - helper script with easy commands
- DEV_MODE.md - comprehensive development guide
- QUICK_DEV_START.md - quick start instructions

USAGE:
  ./dev-mode.sh start      # Start frontend in dev mode
  ./dev-mode.sh logs       # Stream frontend logs
  ./dev-mode.sh logs-all   # Stream all services logs
  ./dev-mode.sh stop       # Stop development mode
  ./dev-mode.sh rebuild    # Rebuild after package.json changes
  ./dev-mode.sh shell      # Open shell in container
  ./dev-mode.sh status     # Check container status

BENEFITS:
- Faster feedback loop during development
- Better debugging with detailed logs
- No production artifacts in dev container
- Source code mounted for real-time updates
- Improved developer experience

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 19:18:42 +01:00

84 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# E-Voting System - Frontend Development Mode Helper
# This script helps run the Next.js frontend in development mode with detailed logging
set -e
case "${1:-help}" in
start)
echo "🚀 Starting frontend in DEVELOPMENT mode with full logging..."
echo ""
echo "Features:"
echo " ✓ Hot reload on file changes"
echo " ✓ Detailed browser console logs"
echo " ✓ Server-side render logs"
echo " ✓ API request/response logs"
echo ""
# Stop the production frontend if running
if docker compose ps | grep -q "evoting_frontend"; then
echo "Stopping production frontend..."
docker compose stop frontend
fi
# Start dev frontend with other services
echo "Starting all services..."
docker compose -f docker-compose.yml -f docker-compose.dev.yml up frontend-dev
;;
stop)
echo "⏹️ Stopping frontend development mode..."
docker compose -f docker-compose.yml -f docker-compose.dev.yml down
;;
logs)
echo "📋 Showing frontend development logs (streaming)..."
echo ""
docker compose -f docker-compose.yml -f docker-compose.dev.yml logs -f frontend-dev
;;
logs-all)
echo "📋 Showing all services logs..."
echo ""
docker compose logs -f
;;
rebuild)
echo "🔨 Rebuilding frontend dev image..."
docker compose -f docker-compose.yml -f docker-compose.dev.yml build --no-cache frontend-dev
;;
shell)
echo "🐚 Opening shell in frontend dev container..."
docker compose -f docker-compose.yml -f docker-compose.dev.yml exec frontend-dev sh
;;
status)
echo "📊 Frontend development status:"
echo ""
docker compose -f docker-compose.yml -f docker-compose.dev.yml ps frontend-dev
;;
*)
echo "E-Voting System - Frontend Development Mode Helper"
echo ""
echo "Usage: ./dev-mode.sh [command]"
echo ""
echo "Commands:"
echo " start - Start frontend in development mode with hot reload"
echo " stop - Stop development mode"
echo " logs - Show frontend logs (streaming)"
echo " logs-all - Show all services logs"
echo " rebuild - Rebuild frontend dev image"
echo " shell - Open shell in dev container"
echo " status - Show development container status"
echo ""
echo "Examples:"
echo " ./dev-mode.sh start # Start dev mode"
echo " ./dev-mode.sh logs # Stream logs"
echo " ./dev-mode.sh logs-all # All services"
echo ""
;;
esac