Complete Docker migration with Next.js 15 and cleaned design

- Migrated from Express.js to Next.js 15 with TypeScript
- Added Docker Compose v2 with multi-stage builds
- Implemented Docker Bake support for improved builds
- Created professional component structure with Tailwind CSS
- Added enhanced visual design with glass morphism effects
- Improved responsive layout and better UX flow
- Updated all dependencies and configurations
- Added proper TypeScript types and modern practices
- Created development scripts for easy container management
- Cleaned up excessive animations for better user experience
This commit is contained in:
mindesbunister
2025-07-14 10:11:06 +02:00
parent 92c5b06b7e
commit b31492a354
41 changed files with 2837 additions and 1101 deletions

166
verify-setup.sh Executable file
View File

@@ -0,0 +1,166 @@
#!/bin/bash
# KidsAI Explorer - Setup Verification Script
# This script verifies that Docker Bake and the migration setup is working correctly
set -e
echo "🔍 KidsAI Explorer - Setup Verification"
echo "======================================="
# Color codes for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Function to print colored status
print_status() {
if [ "$2" = "OK" ]; then
echo -e "${GREEN}$1${NC}"
elif [ "$2" = "WARN" ]; then
echo -e "${YELLOW}⚠️ $1${NC}"
elif [ "$2" = "ERROR" ]; then
echo -e "${RED}$1${NC}"
else
echo -e "${BLUE} $1${NC}"
fi
}
# Check Docker
if command -v docker &> /dev/null; then
if docker info > /dev/null 2>&1; then
print_status "Docker is installed and running" "OK"
else
print_status "Docker is installed but not running" "ERROR"
exit 1
fi
else
print_status "Docker is not installed" "ERROR"
exit 1
fi
# Check Docker Compose
if command -v docker-compose &> /dev/null; then
COMPOSE_VERSION=$(docker-compose version --short 2>/dev/null || echo "unknown")
print_status "Docker Compose is installed (version: $COMPOSE_VERSION)" "OK"
else
print_status "Docker Compose is not installed" "ERROR"
exit 1
fi
# Check Docker Buildx (for Bake support)
if docker buildx version &> /dev/null; then
print_status "Docker Buildx is available (required for Bake)" "OK"
else
print_status "Docker Buildx is not available" "WARN"
fi
# Check if docker-bake.hcl exists
if [ -f "docker-bake.hcl" ]; then
print_status "Docker Bake configuration file exists" "OK"
else
print_status "Docker Bake configuration file missing" "ERROR"
fi
# Check if .env file exists
if [ -f ".env" ]; then
print_status ".env file exists" "OK"
# Check for COMPOSE_BAKE setting
if grep -q "COMPOSE_BAKE=true" .env; then
print_status "COMPOSE_BAKE is enabled in .env" "OK"
else
print_status "COMPOSE_BAKE not enabled in .env" "WARN"
echo -e "${YELLOW} Add 'COMPOSE_BAKE=true' to your .env file for better build performance${NC}"
fi
# Check for API keys
if grep -q "OPENAI_API_KEY=your_openai_api_key_here" .env; then
print_status "OpenAI API key needs to be configured" "WARN"
else
print_status "OpenAI API key appears to be configured" "OK"
fi
else
print_status ".env file missing - copying from template" "WARN"
if [ -f ".env.example" ]; then
cp .env.example .env
print_status "Created .env from .env.example" "OK"
else
print_status ".env.example also missing" "ERROR"
fi
fi
# Check essential files
essential_files=(
"package.json"
"next.config.js"
"tailwind.config.js"
"tsconfig.json"
"Dockerfile"
"docker-compose.yml"
)
for file in "${essential_files[@]}"; do
if [ -f "$file" ]; then
print_status "$file exists" "OK"
else
print_status "$file is missing" "ERROR"
fi
done
# Check directory structure
essential_dirs=(
"src"
"src/app"
"src/components"
"src/lib"
"src/types"
"public"
)
for dir in "${essential_dirs[@]}"; do
if [ -d "$dir" ]; then
print_status "Directory $dir exists" "OK"
else
print_status "Directory $dir is missing" "ERROR"
fi
done
echo ""
echo "🧪 Testing Docker Bake functionality..."
# Test Docker Bake
if [ -f "docker-bake.hcl" ]; then
echo "📋 Available Docker Bake targets:"
docker buildx bake --print 2>/dev/null | grep -E '"target"|"context"' || echo "Could not parse bake targets"
# Test bake file syntax
if docker buildx bake --print > /dev/null 2>&1; then
print_status "Docker Bake configuration is valid" "OK"
else
print_status "Docker Bake configuration has errors" "ERROR"
fi
fi
echo ""
echo "📊 Summary"
echo "=========="
echo "Your KidsAI Explorer project is set up for:"
echo "• Next.js 15 with TypeScript"
echo "• Tailwind CSS for styling"
echo "• Docker containerization"
echo "• Docker Bake for improved build performance"
echo ""
if [ -f ".env" ] && ! grep -q "your_openai_api_key_here" .env; then
echo -e "${GREEN}🚀 Ready to start! Run: ./docker-dev.sh dev${NC}"
else
echo -e "${YELLOW}⚠️ Before starting:${NC}"
echo "1. Edit .env file and add your OpenAI API key"
echo "2. Run: ./docker-dev.sh dev"
fi
echo ""
echo "For help with commands, run: ./docker-dev.sh help"