All phases are now complete: - Phase 1: Foundation ✅ - Phase 2: Core Features ✅ - Phase 3: Full UI ✅ Documentation updated to reflect completion status. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
272 lines
6.3 KiB
Markdown
272 lines
6.3 KiB
Markdown
# Quick Start Guide - APAC Ops Bot
|
|
|
|
## Phase 1: Foundation - COMPLETED ✅
|
|
|
|
### What's Been Built
|
|
|
|
**Backend:**
|
|
- ✅ FastAPI application structure
|
|
- ✅ PostgreSQL database setup via Docker
|
|
- ✅ Redis for caching
|
|
- ✅ SQLAlchemy models (User, Conversation, Message, TokenUsage, Session, UserMemory)
|
|
- ✅ Alembic migrations setup
|
|
- ✅ Configuration management
|
|
- ✅ Logging system
|
|
- ✅ Multi-stage Dockerfile
|
|
|
|
**Frontend:**
|
|
- ✅ React 18 + TypeScript project
|
|
- ✅ Dark & Gold theme CSS
|
|
- ✅ Basic UI structure
|
|
- ✅ Multi-stage Dockerfile
|
|
- ✅ Environment configuration
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
1. **Docker Desktop** - Install from https://www.docker.com/products/docker-desktop
|
|
2. **Node.js 18+** (for local frontend development)
|
|
3. **Python 3.11+** (for local backend development)
|
|
|
|
---
|
|
|
|
## Getting Started
|
|
|
|
### Step 1: Configure Azure AD (Required for Authentication)
|
|
|
|
1. Go to [Azure Portal](https://portal.azure.com)
|
|
2. Navigate to "Azure Active Directory" → "App registrations"
|
|
3. Click "New registration"
|
|
4. Configure:
|
|
- Name: "APAC Ops Bot"
|
|
- Supported account types: "Accounts in this organizational directory only"
|
|
- Redirect URI: `http://localhost:8000/api/v1/auth/msal/callback`
|
|
5. After registration, note down:
|
|
- **Application (client) ID**
|
|
- **Directory (tenant) ID**
|
|
6. Go to "Certificates & secrets" → "New client secret"
|
|
7. Note down the **Client secret value**
|
|
|
|
### Step 2: Update Environment Variables
|
|
|
|
**Backend** (`backend/.env`):
|
|
```bash
|
|
# Update these with your Azure AD values:
|
|
AZURE_TENANT_ID=your-actual-tenant-id
|
|
AZURE_CLIENT_ID=your-actual-client-id
|
|
AZURE_CLIENT_SECRET=your-actual-client-secret
|
|
```
|
|
|
|
**Frontend** (`frontend/.env`):
|
|
```bash
|
|
# Update these with your Azure AD values:
|
|
REACT_APP_AZURE_CLIENT_ID=your-actual-client-id
|
|
REACT_APP_AZURE_TENANT_ID=your-actual-tenant-id
|
|
```
|
|
|
|
### Step 3: Start with Docker (Recommended)
|
|
|
|
```bash
|
|
# From project root
|
|
cd /Volumes/SSD/Projects/Oliver/APAC\ ops\ Bot/apac-ops-bot
|
|
|
|
# Start PostgreSQL and Redis
|
|
docker-compose up -d postgres redis
|
|
|
|
# Wait for services to be healthy (about 10 seconds)
|
|
docker-compose logs postgres
|
|
|
|
# Build and start backend
|
|
docker-compose up --build backend
|
|
```
|
|
|
|
The backend will be available at: **http://localhost:8000**
|
|
- API Docs: http://localhost:8000/docs
|
|
- Health Check: http://localhost:8000/health
|
|
|
|
### Step 4: Run Database Migrations
|
|
|
|
```bash
|
|
# In a new terminal, run migrations
|
|
docker-compose exec backend alembic upgrade head
|
|
```
|
|
|
|
### Step 5: Start Frontend (Local Development)
|
|
|
|
```bash
|
|
# Open new terminal
|
|
cd frontend
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm start
|
|
```
|
|
|
|
The frontend will be available at: **http://localhost:3000**
|
|
|
|
---
|
|
|
|
## Verify Installation
|
|
|
|
### Test Backend
|
|
|
|
```bash
|
|
# Health check
|
|
curl http://localhost:8000/health
|
|
|
|
# Expected response:
|
|
# {"status":"healthy","app":"Seapac Ops Bot","environment":"development"}
|
|
```
|
|
|
|
### Test Frontend
|
|
|
|
1. Open http://localhost:3000 in your browser
|
|
2. You should see the "Seapac Ops Bot" welcome screen with:
|
|
- Gold header with robot avatar
|
|
- Welcome message
|
|
- Message input field
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
apac-ops-bot/
|
|
├── backend/ # FastAPI backend
|
|
│ ├── app/
|
|
│ │ ├── models/ # Database models ✅
|
|
│ │ ├── api/ # API endpoints (Phase 2)
|
|
│ │ ├── services/ # Business logic (Phase 2)
|
|
│ │ └── ...
|
|
│ ├── alembic/ # Database migrations ✅
|
|
│ ├── .env # Environment config ✅
|
|
│ └── Dockerfile # Docker config ✅
|
|
│
|
|
├── frontend/ # React frontend
|
|
│ ├── src/
|
|
│ │ ├── components/ # React components (Phase 2)
|
|
│ │ ├── styles/ # Dark & Gold theme ✅
|
|
│ │ └── App.tsx # Main app ✅
|
|
│ ├── .env # Environment config ✅
|
|
│ └── Dockerfile # Docker config ✅
|
|
│
|
|
└── docker-compose.yml # Services orchestration ✅
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ COMPLETE - All Features Implemented!
|
|
|
|
**Phase 1:** ✅ Foundation (Backend + Frontend structure)
|
|
**Phase 2:** ✅ Core Features (OpenAI + Auth + Chat)
|
|
**Phase 3:** ✅ UI Complete (Sidebar + Analytics + Management)
|
|
|
|
### What's Working:
|
|
1. ✅ **OpenAI Integration** - Responses API with RAG enforcement
|
|
2. ✅ **Authentication** - MSAL with JWT sessions
|
|
3. ✅ **Chat Functionality** - Full conversation management
|
|
4. ✅ **Token Tracking** - Complete analytics dashboard
|
|
5. ✅ **UI Features** - Sidebar, navigation, conversation management
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Docker Issues
|
|
|
|
**Problem:** "Cannot connect to Docker daemon"
|
|
**Solution:** Start Docker Desktop application
|
|
|
|
**Problem:** Port already in use
|
|
**Solution:**
|
|
```bash
|
|
# Check what's using the port
|
|
lsof -i :8000 # or :5432, :6379
|
|
|
|
# Stop existing containers
|
|
docker-compose down
|
|
```
|
|
|
|
### Backend Issues
|
|
|
|
**Problem:** Database connection error
|
|
**Solution:**
|
|
```bash
|
|
# Ensure PostgreSQL is running
|
|
docker-compose ps postgres
|
|
|
|
# Check logs
|
|
docker-compose logs postgres
|
|
```
|
|
|
|
### Frontend Issues
|
|
|
|
**Problem:** Module not found
|
|
**Solution:**
|
|
```bash
|
|
cd frontend
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
```
|
|
|
|
---
|
|
|
|
## Useful Commands
|
|
|
|
```bash
|
|
# View all running containers
|
|
docker-compose ps
|
|
|
|
# View logs
|
|
docker-compose logs -f backend
|
|
docker-compose logs -f postgres
|
|
|
|
# Stop all services
|
|
docker-compose down
|
|
|
|
# Restart a service
|
|
docker-compose restart backend
|
|
|
|
# Access PostgreSQL directly
|
|
docker-compose exec postgres psql -U apac_ops_bot
|
|
|
|
# Run backend tests
|
|
docker-compose exec backend pytest
|
|
|
|
# Access backend shell
|
|
docker-compose exec backend bash
|
|
```
|
|
|
|
---
|
|
|
|
## Environment Configuration
|
|
|
|
All sensitive data is in `.env` files (NOT committed to git).
|
|
|
|
**Backend variables:**
|
|
- `SECRET_KEY` - JWT secret (generate with: `openssl rand -hex 32`)
|
|
- `DATABASE_URL` - PostgreSQL connection string
|
|
- `OPENAI_API_KEY` - OpenAI API key (already configured)
|
|
- `AZURE_*` - Azure AD credentials (UPDATE REQUIRED)
|
|
|
|
**Frontend variables:**
|
|
- `REACT_APP_API_URL` - Backend API URL
|
|
- `REACT_APP_AZURE_*` - Azure AD credentials (UPDATE REQUIRED)
|
|
|
|
---
|
|
|
|
## Support
|
|
|
|
For issues:
|
|
1. Check logs: `docker-compose logs -f`
|
|
2. Verify all environment variables are set
|
|
3. Ensure Docker Desktop is running
|
|
4. Check [README.md](README.md) for detailed documentation
|
|
|
|
---
|
|
|
|
**Phase 1 Status:** ✅ COMPLETE
|
|
**Next Phase:** Phase 2 - Core Chat Features
|