Backup: 2025-06-07 19:48 - Script test

[Restore from backup: vip-coordinator-backup-2025-06-07-19-48-script-test]
This commit is contained in:
2025-06-07 19:48:00 +02:00
parent 8fb00ec041
commit dc4655cef4
103 changed files with 16396 additions and 6143 deletions

457
README.md
View File

@@ -1,222 +1,282 @@
# VIP Coordinator
A comprehensive web application for managing VIP logistics, driver assignments, and real-time tracking with Google OAuth authentication and role-based access control.
A comprehensive VIP transportation coordination system built with React, Node.js, PostgreSQL, and Redis. This application provides real-time scheduling, driver management, and VIP coordination capabilities with enterprise-grade security and scalability.
## ✨ Features
## 🚀 Quick Start with Docker
### 🔐 Authentication & User Management
- **Google OAuth Integration**: Secure login with Google accounts
- **Role-Based Access Control**: Administrator, Coordinator, and Driver roles
- **User Approval System**: Admin approval required for new users
- **JWT-Based Authentication**: Stateless, secure token system
### Prerequisites
### 👥 VIP Management
- **Complete VIP Profiles**: Name, organization, department, transport details
- **Multi-Flight Support**: Handle complex itineraries with multiple flights
- **Department Organization**: Office of Development and Admin departments
- **Schedule Management**: Event scheduling with conflict detection
- **Real-time Flight Tracking**: Automatic flight status updates
- Docker and Docker Compose installed
- Google OAuth credentials (for authentication)
- Domain name or localhost for development
### 🚗 Driver Coordination
- **Driver Management**: Create and manage driver profiles
- **Availability Checking**: Real-time conflict detection
- **Schedule Assignment**: Assign drivers to VIP events
- **Department-Based Organization**: Organize drivers by department
### 1. Pull the Images
### ✈️ Flight Integration
- **Real-time Flight Data**: Integration with AviationStack API
- **Automatic Tracking**: Scheduled flight status updates
- **Multi-Flight Support**: Handle complex travel itineraries
- **Flight Validation**: Verify flight numbers and dates
```bash
docker pull t72chevy/vip-coordinator:backend-latest
docker pull t72chevy/vip-coordinator:frontend-latest
```
### 📊 Advanced Features
- **Interactive API Documentation**: Swagger UI with "Try it out" functionality
- **Schedule Validation**: Prevent conflicts and overlapping assignments
- **Comprehensive Logging**: Detailed system activity tracking
- **Docker Containerization**: Easy deployment and development
### 2. Create Environment File
Create a `.env` file in your project directory:
```env
# Database Configuration
POSTGRES_DB=vip_coordinator
POSTGRES_USER=vip_user
POSTGRES_PASSWORD=your_secure_password_here
# Backend Configuration
DATABASE_URL=postgresql://vip_user:your_secure_password_here@postgres:5432/vip_coordinator
NODE_ENV=production
PORT=3000
# Frontend Configuration
VITE_API_URL=http://localhost:3000
VITE_FRONTEND_URL=http://localhost
# Google OAuth Configuration
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
# Redis Configuration
REDIS_URL=redis://redis:6379
# Security
JWT_SECRET=auto-generated-on-startup
```
### 3. Create Docker Compose File
Create a `docker-compose.yml` file:
```yaml
version: '3.8'
services:
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
backend:
image: t72chevy/vip-coordinator:backend-latest
environment:
- DATABASE_URL=${DATABASE_URL}
- NODE_ENV=${NODE_ENV}
- PORT=${PORT}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- REDIS_URL=${REDIS_URL}
- JWT_SECRET=${JWT_SECRET}
ports:
- "3000:3000"
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
frontend:
image: t72chevy/vip-coordinator:frontend-latest
environment:
- VITE_API_URL=${VITE_API_URL}
- VITE_FRONTEND_URL=${VITE_FRONTEND_URL}
ports:
- "80:80"
depends_on:
backend:
condition: service_healthy
volumes:
postgres_data:
```
### 4. Deploy the Application
```bash
# Start all services
docker-compose up -d
# Check service status
docker-compose ps
# View logs
docker-compose logs -f
```
### 5. Access the Application
- **Frontend**: http://localhost
- **Backend API**: http://localhost:3001
- **Health Check**: http://localhost:3001/health
## 🔧 Configuration
### Google OAuth Setup
1. Go to the [Google Cloud Console](https://console.cloud.google.com/)
2. Create a new project or select an existing one
3. Enable the Google+ API
4. Create OAuth 2.0 credentials
5. Add your domain to authorized origins
6. Add your callback URL: `http://your-domain/auth/google/callback`
### Environment Variables
| Variable | Description | Required | Default |
|----------|-------------|----------|---------|
| `POSTGRES_DB` | PostgreSQL database name | Yes | `vip_coordinator` |
| `POSTGRES_USER` | PostgreSQL username | Yes | `vip_user` |
| `POSTGRES_PASSWORD` | PostgreSQL password | Yes | - |
| `DATABASE_URL` | Full database connection string | Yes | - |
| `GOOGLE_CLIENT_ID` | Google OAuth client ID | Yes | - |
| `GOOGLE_CLIENT_SECRET` | Google OAuth client secret | Yes | - |
| `REDIS_URL` | Redis connection string | Yes | `redis://redis:6379` |
| `NODE_ENV` | Node.js environment | No | `production` |
| `PORT` | Backend server port | No | `3001` |
| `VITE_API_URL` | Frontend API URL | Yes | - |
| `VITE_FRONTEND_URL` | Frontend base URL | Yes | - |
## 🏗️ Architecture
### Backend
- **Node.js + Express.js**: RESTful API server
- **TypeScript**: Full type safety
- **PostgreSQL**: Persistent data storage with automatic schema management
- **Redis**: Caching and real-time updates
- **JWT Authentication**: Secure, stateless authentication
- **Google OAuth 2.0**: Simple, secure user authentication
### Services
### Frontend
- **React 18 + TypeScript**: Modern, type-safe frontend
- **Vite**: Lightning-fast development server
- **Tailwind CSS v4**: Modern utility-first styling
- **React Router**: Client-side routing
- **Frontend**: React application with Vite build system, served by Nginx
- **Backend**: Node.js/Express API server with TypeScript
- **Database**: PostgreSQL for persistent data storage
- **Cache**: Redis for session management and real-time features
### Security Features
- **JWT Auto-Rotation**: Automatic JWT secret rotation for enhanced security
- **Google OAuth**: Secure authentication via Google
- **Non-Root Containers**: All containers run as non-root users
- **Health Checks**: Comprehensive health monitoring
- **Input Validation**: Robust input validation and sanitization
### Key Features
- **Real-time Scheduling**: Live updates for VIP schedules and assignments
- **Driver Management**: Comprehensive driver tracking and assignment
- **User Roles**: Admin and driver role-based access control
- **Responsive Design**: Mobile-friendly interface
- **Data Export**: Export capabilities for schedules and reports
- **Audit Logging**: Comprehensive activity logging
## 🚀 Quick Start
## 🔍 Monitoring & Troubleshooting
### Prerequisites
- Docker and Docker Compose
- Google Cloud Console account (for OAuth setup)
### Health Checks
### 1. Start the Application
```bash
git clone <repository-url>
cd vip-coordinator
make dev
```
# Check all services
docker-compose ps
**Services will be available at:**
- 🌐 **Frontend**: http://localhost:5173
- 🔌 **Backend API**: http://localhost:3000
- 📚 **API Documentation**: http://localhost:3000/api-docs.html
- 🏥 **Health Check**: http://localhost:3000/api/health
### 2. Configure Google OAuth
See [SETUP_GUIDE.md](SETUP_GUIDE.md) for detailed OAuth setup instructions.
### 3. First Login
- Visit http://localhost:5173
- Click "Continue with Google"
- First user becomes system administrator
- Subsequent users need admin approval
## 📚 API Documentation
### Interactive Documentation
Visit **http://localhost:3000/api-docs.html** for:
- 📖 Complete API reference with examples
- 🧪 "Try it out" functionality for testing endpoints
- 📋 Request/response schemas and validation rules
- 🔐 Authentication requirements for each endpoint
### Key API Categories
- **🔐 Authentication**: `/auth/*` - OAuth, user management, role assignment
- **👥 VIPs**: `/api/vips/*` - VIP profiles, scheduling, flight integration
- **🚗 Drivers**: `/api/drivers/*` - Driver management, availability, conflicts
- **✈️ Flights**: `/api/flights/*` - Flight tracking, real-time updates
- **⚙️ Admin**: `/api/admin/*` - System settings, user approval
## 🛠️ Development
### Available Commands
```bash
# Start development environment
make dev
# Backend health
curl http://localhost:3001/health
# View logs
make logs
# Stop all services
make down
# Rebuild containers
make build
# Backend development
cd backend && npm run dev
# Frontend development
cd frontend && npm run dev
docker-compose logs backend
docker-compose logs frontend
docker-compose logs postgres
docker-compose logs redis
```
### Project Structure
```
vip-coordinator/
├── backend/ # Node.js API server
├── src/
│ ├── routes/ # API route handlers
│ │ ├── services/ # Business logic services
│ │ ├── config/ # Configuration and auth
│ └── index.ts # Main server file
├── package.json
├── tsconfig.json
│ └── Dockerfile
├── frontend/ # React frontend
├── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components
│ │ ├── config/ # API configuration
│ │ ├── App.tsx # Main app component
│ │ └── main.tsx # Entry point
│ ├── package.json
│ ├── vite.config.ts
│ └── Dockerfile
├── docker-compose.dev.yml # Development environment
├── docker-compose.prod.yml # Production environment
├── Makefile # Development commands
├── SETUP_GUIDE.md # Detailed setup instructions
└── README.md # This file
### Common Issues
1. **Database Connection Issues**
- Ensure PostgreSQL is healthy: `docker-compose logs postgres`
- Verify DATABASE_URL format
- Check password special characters (avoid `!` and other special chars)
2. **Google OAuth Issues**
- Verify client ID and secret
- Check authorized origins in Google Console
- Ensure callback URL matches your domain
3. **Frontend Not Loading**
- Check VITE_API_URL points to correct backend
- Verify backend is healthy
- Check browser console for errors
## 🚀 Production Deployment
### For Production Use
1. **Use HTTPS**: Configure SSL/TLS certificates
2. **Secure Passwords**: Use strong, unique passwords
3. **Environment Secrets**: Use Docker secrets or external secret management
4. **Backup Strategy**: Implement regular database backups
5. **Monitoring**: Set up application and infrastructure monitoring
6. **Load Balancing**: Consider load balancers for high availability
### Example Production Environment
```env
# Production environment example
POSTGRES_PASSWORD=super_secure_random_password_here
VITE_API_URL=https://api.yourdomain.com
VITE_FRONTEND_URL=https://yourdomain.com
NODE_ENV=production
```
## 🔐 User Roles & Permissions
## 📝 API Documentation
### Administrator
- Full system access
- User management and approval
- System configuration
- All VIP and driver operations
### Authentication Endpoints
### Coordinator
- VIP management (create, edit, delete)
- Driver management
- Schedule management
- Flight tracking
- `GET /auth/google` - Initiate Google OAuth
- `GET /auth/google/callback` - OAuth callback
- `POST /auth/logout` - Logout user
- `GET /auth/me` - Get current user
### Driver
- View assigned schedules
- Update task status
- Access driver dashboard
### Core Endpoints
## 🌐 Deployment
- `GET /api/vips` - List VIPs
- `POST /api/vips` - Create VIP
- `GET /api/drivers` - List drivers
- `POST /api/drivers` - Create driver
- `GET /api/schedules` - List schedules
- `POST /api/schedules` - Create schedule
### Development
```bash
make dev
```
### Health & Status
### Production
```bash
# Build production images
make build
# Deploy with production configuration
docker-compose -f docker-compose.prod.yml up -d
```
### Environment Configuration
See [SETUP_GUIDE.md](SETUP_GUIDE.md) for detailed environment variable configuration.
## 📋 Current Status
### ✅ Implemented Features
- Google OAuth authentication with JWT
- Role-based access control
- User approval workflow
- VIP management with multi-flight support
- Driver management and scheduling
- Real-time flight tracking
- Schedule conflict detection
- Interactive API documentation
- Docker containerization
- PostgreSQL data persistence
### 🚧 Planned Features
- [ ] Real-time GPS tracking for drivers
- [ ] Push notifications for schedule changes
- [ ] Mobile driver application
- [ ] Advanced reporting and analytics
- [ ] Google Sheets integration
- [ ] Multi-tenant support
- [ ] Advanced mapping features
- `GET /health` - Application health check
- `GET /api/status` - Detailed system status
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes and test thoroughly
4. Commit your changes: `git commit -m 'Add amazing feature'`
5. Push to the branch: `git push origin feature/amazing-feature`
6. Submit a pull request
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## 📄 License
@@ -224,11 +284,28 @@ This project is licensed under the MIT License - see the LICENSE file for detail
## 🆘 Support
- 📖 **Documentation**: Check [SETUP_GUIDE.md](SETUP_GUIDE.md) for detailed setup
- 🔧 **API Reference**: Visit http://localhost:3000/api-docs.html
- 🐛 **Issues**: Report bugs and request features via GitHub issues
- 💬 **Discussions**: Use GitHub discussions for questions and ideas
For issues and questions:
1. Check the troubleshooting section above
2. Review Docker Compose logs
3. Create an issue on GitHub with:
- Docker Compose version
- Environment details
- Error logs
- Steps to reproduce
## 🔄 Updates
To update to the latest version:
```bash
# Pull latest images
docker-compose pull
# Restart services
docker-compose up -d
```
---
**VIP Coordinator** - Streamlining VIP logistics with modern web technology.
**Built with ❤️ for efficient VIP transportation coordination**