YanCotta commited on
Commit
b8bfa88
Β·
1 Parent(s): 120d289

feat: Add run_dev.sh script to start FastAPI backend and Vite frontend development servers

Browse files
Files changed (1) hide show
  1. run_dev.sh +74 -0
run_dev.sh ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # FinResearch AI - Development Server Runner
4
+ # Starts both FastAPI backend and Vite frontend dev server
5
+ # =============================================================================
6
+
7
+ set -e
8
+
9
+ # Colors for output
10
+ RED='\033[0;31m'
11
+ GREEN='\033[0;32m'
12
+ YELLOW='\033[1;33m'
13
+ BLUE='\033[0;34m'
14
+ NC='\033[0m' # No Color
15
+
16
+ # Project root directory
17
+ PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
18
+ FRONTEND_DIR="$PROJECT_DIR/frontend"
19
+
20
+ echo -e "${BLUE}╔══════════════════════════════════════════════════════════════╗${NC}"
21
+ echo -e "${BLUE}β•‘ FinResearch AI - Development Server β•‘${NC}"
22
+ echo -e "${BLUE}β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•${NC}"
23
+ echo ""
24
+
25
+ # Check for .env file
26
+ if [ ! -f "$PROJECT_DIR/.env" ]; then
27
+ echo -e "${YELLOW}[WARNING] No .env file found. Create one with OPENAI_API_KEY.${NC}"
28
+ fi
29
+
30
+ # Function to cleanup background processes on exit
31
+ cleanup() {
32
+ echo -e "\n${YELLOW}Shutting down servers...${NC}"
33
+ kill $BACKEND_PID $FRONTEND_PID 2>/dev/null || true
34
+ exit 0
35
+ }
36
+ trap cleanup SIGINT SIGTERM
37
+
38
+ # Check if node_modules exists for frontend
39
+ if [ ! -d "$FRONTEND_DIR/node_modules" ]; then
40
+ echo -e "${YELLOW}Installing frontend dependencies...${NC}"
41
+ cd "$FRONTEND_DIR"
42
+ npm install
43
+ cd "$PROJECT_DIR"
44
+ fi
45
+
46
+ # Start backend server
47
+ echo -e "${GREEN}Starting FastAPI backend on http://localhost:8000${NC}"
48
+ cd "$PROJECT_DIR"
49
+ python -m uvicorn src.api:app --host 0.0.0.0 --port 8000 --reload &
50
+ BACKEND_PID=$!
51
+
52
+ # Give backend time to start
53
+ sleep 2
54
+
55
+ # Start frontend dev server
56
+ echo -e "${GREEN}Starting Vite frontend on http://localhost:5173${NC}"
57
+ cd "$FRONTEND_DIR"
58
+ npm run dev &
59
+ FRONTEND_PID=$!
60
+
61
+ echo ""
62
+ echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
63
+ echo -e "${GREEN}β•‘ Development servers running! β•‘${NC}"
64
+ echo -e "${GREEN}╠══════════════════════════════════════════════════════════════╣${NC}"
65
+ echo -e "${GREEN}β•‘ Frontend: http://localhost:5173 β•‘${NC}"
66
+ echo -e "${GREEN}β•‘ Backend: http://localhost:8000 β•‘${NC}"
67
+ echo -e "${GREEN}β•‘ API Docs: http://localhost:8000/api/docs β•‘${NC}"
68
+ echo -e "${GREEN}╠══════════════════════════════════════════════════════════════╣${NC}"
69
+ echo -e "${GREEN}β•‘ Press Ctrl+C to stop all servers β•‘${NC}"
70
+ echo -e "${GREEN}β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•${NC}"
71
+ echo ""
72
+
73
+ # Wait for either process to exit
74
+ wait $BACKEND_PID $FRONTEND_PID