57 lines
1.5 KiB
Bash
Executable File
57 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Project Progress Tracker Development Script
|
|
# This script runs both frontend and backend servers for development
|
|
|
|
echo "=== Project Progress Tracker Development Startup ==="
|
|
echo "Starting PostgreSQL database, frontend and backend servers..."
|
|
|
|
# Check if PostgreSQL is running
|
|
if ! pg_isready > /dev/null 2>&1; then
|
|
echo "PostgreSQL is not running. Please start PostgreSQL first."
|
|
echo "You can typically start it with: sudo service postgresql start"
|
|
exit 1
|
|
fi
|
|
|
|
# Create database if it doesn't exist
|
|
echo "Checking database..."
|
|
if ! psql -lqt | cut -d \| -f 1 | grep -qw project_tracker; then
|
|
echo "Creating database 'project_tracker'..."
|
|
createdb project_tracker
|
|
|
|
# Initialize database schema
|
|
echo "Initializing database schema..."
|
|
psql -d project_tracker -f backend/src/config/init.sql
|
|
else
|
|
echo "Database 'project_tracker' already exists."
|
|
fi
|
|
|
|
# Start backend and frontend in separate terminals
|
|
echo "Starting backend server..."
|
|
cd backend && npm run dev &
|
|
BACKEND_PID=$!
|
|
|
|
echo "Starting frontend server..."
|
|
cd frontend && npm start &
|
|
FRONTEND_PID=$!
|
|
|
|
# Function to handle script termination
|
|
function cleanup {
|
|
echo "Stopping servers..."
|
|
kill $BACKEND_PID
|
|
kill $FRONTEND_PID
|
|
echo "Servers stopped."
|
|
exit
|
|
}
|
|
|
|
# Register the cleanup function for SIGINT (Ctrl+C)
|
|
trap cleanup SIGINT
|
|
|
|
echo "=== Development servers are running ==="
|
|
echo "Backend server: http://localhost:5000"
|
|
echo "Frontend server: http://localhost:3000"
|
|
echo "Press Ctrl+C to stop both servers."
|
|
|
|
# Wait for user to stop the script
|
|
wait
|