FinMK / full_setup.bat
Kumar
Refactor: Exclude PDF and CSV files from Git to fix HF push error
24e6f5b
@echo off
setlocal enabledelayedexpansion
echo ==========================================
echo FinMK - Full Setup Script
echo ==========================================
echo.
echo This script will:
echo 1. Check Prerequisites
echo 2. Create .env file with MongoDB configuration
echo 3. Install all Python dependencies
echo 4. Install frontend dependencies
echo 5. Build frontend with Vite
echo 6. Sync static files and Run Migrations
echo 7. Verify MongoDB connection
echo 8. Run Django system checks
echo 9. Start both development servers
echo.
echo ==========================================
echo.
:: Check Prerequisites
echo [Step 1/9] Checking Prerequisites...
where python >nul 2>nul
if %errorlevel% neq 0 (
echo [ERROR] Python is not installed or not in PATH.
echo Please install Python 3.8+ and add it to PATH.
pause
exit /b 1
)
where npm >nul 2>nul
if %errorlevel% neq 0 (
echo [ERROR] Node.js/npm is not installed or not in PATH.
echo Please install Node.js and add it to PATH.
pause
exit /b 1
)
echo [OK] Python and Node.js detected.
echo.
:: Create .env file
echo [Step 2/9] Creating .env file...
cd /d "%~dp0backend"
if exist .env (
echo [INFO] .env file already exists. Skipping creation.
) else (
echo Creating .env file with MongoDB Atlas configuration...
(
echo # MongoDB Configuration
echo MONGODB_URI=mongodb+srv://kumar:KumarDB7@mkcluster.hkk76.mongodb.net/finance
echo.
echo # Django Configuration
echo SECRET_KEY=django-insecure-ereyyk0#@t#lc$@hpx^&9h@60-=-e+#=-3w^w+91w^&ol-^(6c^(fv
echo DEBUG=True
echo ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
echo.
echo # Database Name
echo DB_NAME=finance
echo.
echo # Gemini AI Configuration
echo # Get your free API key from: https://aistudio.google.com/app/apikey
echo # Replace 'your_gemini_api_key_here' with your actual API key
echo GEMINI_API_KEY=your_gemini_api_key_here
) > .env
echo [OK] .env file created successfully.
echo.
echo [IMPORTANT] Please add your Gemini API key to backend\.env file
echo to enable AI chatbot features.
echo Get your free key from: https://aistudio.google.com/app/apikey
)
echo.
:: Install Python Dependencies
echo [Step 3/9] Installing Python Dependencies...
echo This may take several minutes...
echo.
python -m pip install --upgrade pip
if %errorlevel% neq 0 (
echo [WARNING] Failed to upgrade pip. Continuing...
)
echo Installing requirements.txt...
pip install -r requirements.txt
if %errorlevel% neq 0 (
echo [ERROR] Failed to install Python dependencies.
pause
exit /b 1
)
echo [OK] Python dependencies installed successfully.
echo.
:: Install Frontend Dependencies
echo [Step 4/9] Installing Frontend Dependencies...
cd /d "%~dp0frontend"
echo Installing npm packages...
call npm install
if %errorlevel% neq 0 (
echo [ERROR] Failed to install npm packages.
pause
exit /b 1
)
echo [OK] Frontend dependencies installed.
echo.
:: Build Frontend
echo [Step 5/9] Building Frontend with Vite...
echo This may take a minute...
call npm run build
if %errorlevel% neq 0 (
echo [ERROR] Frontend build failed.
pause
exit /b 1
)
echo [OK] Frontend built successfully.
echo.
:: Sync Static Files and Migrations
echo [Step 6/9] Syncing Static Files and Running Migrations...
cd /d "%~dp0"
if not exist backend\staticfiles mkdir backend\staticfiles
echo Copying frontend build to staticfiles...
xcopy /E /I /Y "frontend\dist\*" "backend\staticfiles\"
if %errorlevel% neq 0 (
echo [WARNING] Failed to copy some files.
)
cd backend
echo Running database migrations (SQLite)...
python manage.py migrate
if %errorlevel% neq 0 (
echo [ERROR] Database migration failed.
pause
exit /b 1
)
echo Running Django collectstatic...
python manage.py collectstatic --no-input
if %errorlevel% neq 0 (
echo [WARNING] collectstatic completed with warnings.
) else (
echo [OK] Static files collected and migrations applied.
)
echo.
:: Verify MongoDB Connection
echo [Step 7/9] Verifying MongoDB Connection...
python -c "from pymongo import MongoClient; import os; from dotenv import load_dotenv; load_dotenv(); uri = os.getenv('MONGODB_URI'); client = MongoClient(uri, serverSelectionTimeoutMS=5000); client.server_info(); print('[OK] MongoDB connected successfully!')"
if %errorlevel% neq 0 (
echo [WARNING] MongoDB connection failed. Please check your MONGODB_URI in .env file.
echo The application may not work properly without MongoDB.
) else (
echo [OK] MongoDB connection verified.
)
echo.
:: Run Django System Check
echo [Step 8/9] Running Django System Check...
python manage.py check
if %errorlevel% neq 0 (
echo [WARNING] Django system check found issues.
) else (
echo [OK] Django system check passed.
)
echo.
:: Final Summary
echo ==========================================
echo Setup Complete!
echo ==========================================
echo.
echo All components have been initialized:
echo [x] Python dependencies installed
echo [x] AI models downloaded
echo [x] Database migrations applied
echo [x] Frontend built
echo [x] Static files synced
echo [x] MongoDB connection verified
echo [x] Django system check passed
echo.
echo ==========================================
echo Starting Development Servers
echo ==========================================
echo.
:: Start Backend Server
cd /d "%~dp0backend"
echo Starting Backend (Django) on http://localhost:8000...
start "FinMK Backend" powershell -NoExit -Command "cd '%~dp0backend'; python manage.py runserver 0.0.0.0:8000"
:: Wait a moment before starting frontend
timeout /t 2 /nobreak >nul
:: Start Frontend Server
cd /d "%~dp0frontend"
echo Starting Frontend (Vite) on http://localhost:5173...
start "FinMK Frontend" powershell -NoExit -Command "cd '%~dp0frontend'; npm run dev"
echo.
echo ==========================================
echo Servers Started!
echo ==========================================
echo.
echo Backend: http://localhost:8000
echo Frontend: http://localhost:5173
echo.
echo Both servers are running in separate windows.
echo Close the PowerShell windows to stop the servers.
echo.
echo Press any key to exit this setup window...
pause >nul
endlocal