106 lines
2.8 KiB
Bash
106 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
# ALwrity Complete Setup Script
|
|
# This script sets up both frontend and backend for local development
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "🚀 ALwrity Setup Script"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
# Color codes for output
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Check if we're in the project root
|
|
if [ ! -d "frontend" ] || [ ! -d "backend" ]; then
|
|
echo -e "${RED}❌ Error: This script must be run from the project root directory${NC}"
|
|
echo "Please navigate to the AI-Writer directory and try again."
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${YELLOW}📋 Step 1: Setting up Backend${NC}"
|
|
echo "--------------------------------"
|
|
|
|
# Setup Backend
|
|
cd backend
|
|
|
|
echo "Creating Python virtual environment..."
|
|
python -m venv .venv || python3 -m venv .venv
|
|
|
|
echo "Activating virtual environment..."
|
|
source .venv/bin/activate || source .venv/Scripts/activate
|
|
|
|
echo "Installing Python dependencies..."
|
|
pip install -r requirements.txt
|
|
|
|
# Create .env file if it doesn't exist
|
|
if [ ! -f ".env" ]; then
|
|
echo "Creating .env file from template..."
|
|
cp env_template.txt .env
|
|
echo -e "${YELLOW}⚠️ Please update backend/.env with your API keys${NC}"
|
|
fi
|
|
|
|
echo "Creating subscription tables..."
|
|
python scripts/create_subscription_tables.py || echo -e "${YELLOW}⚠️ Subscription tables may already exist${NC}"
|
|
|
|
echo "Updating subscription plans..."
|
|
python scripts/cleanup_alpha_plans.py || echo -e "${YELLOW}⚠️ Plans may already be updated${NC}"
|
|
|
|
cd ..
|
|
|
|
echo -e "${GREEN}✅ Backend setup complete!${NC}"
|
|
echo ""
|
|
|
|
echo -e "${YELLOW}📋 Step 2: Setting up Frontend${NC}"
|
|
echo "--------------------------------"
|
|
|
|
# Setup Frontend
|
|
cd frontend
|
|
|
|
# Clean install
|
|
if [ -d "node_modules" ]; then
|
|
echo "Cleaning old node_modules..."
|
|
rm -rf node_modules package-lock.json
|
|
fi
|
|
|
|
echo "Installing Node.js dependencies (this may take a few minutes)..."
|
|
npm install
|
|
|
|
# Create .env file if it doesn't exist
|
|
if [ ! -f ".env" ]; then
|
|
echo "Creating .env file from template..."
|
|
cp env_template.txt .env
|
|
echo -e "${YELLOW}⚠️ Please update frontend/.env with your environment variables${NC}"
|
|
fi
|
|
|
|
echo "Building frontend..."
|
|
npm run build
|
|
|
|
cd ..
|
|
|
|
echo -e "${GREEN}✅ Frontend setup complete!${NC}"
|
|
echo ""
|
|
|
|
echo "================================"
|
|
echo -e "${GREEN}🎉 ALwrity Setup Complete!${NC}"
|
|
echo "================================"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Update backend/.env with your API keys (Clerk, Gemini, etc.)"
|
|
echo "2. Update frontend/.env with your Clerk publishable key"
|
|
echo ""
|
|
echo "To start the application:"
|
|
echo " Backend: cd backend && python app.py"
|
|
echo " Frontend: cd frontend && npm start"
|
|
echo ""
|
|
echo "Access points:"
|
|
echo " Frontend: http://localhost:3000"
|
|
echo " Backend API: http://localhost:8000/api/docs"
|
|
echo ""
|
|
echo -e "${GREEN}Happy coding! 🚀${NC}"
|
|
|