DAViN is a comprehensive construction project analytics system that provides intelligent insights and visualization capabilities for construction project data. The system integrates with Airtable for data storage, OpenAI for AI-powered insights, and Procore for project management.
- FastAPI-based REST API with WebSocket support
- AI-powered construction insights using OpenAI GPT
- Integration with Airtable for data storage
- Integration with Procore for project management
- Real-time progress updates via WebSocket
- Modern, responsive UI with cyberpunk-inspired design
- Real-time data visualization
- Interactive filters for project analysis
- AI chat interface for construction insights
- Dynamic data loading and caching
- Phase Analysis: Filter and analyze construction phases
- Division Management: CSI division-based organization
- WBS Categories: Work Breakdown Structure categorization
- Duration Tracking: Track and analyze task durations
- AI Insights: Get intelligent insights about construction elements
- Document References: Automatic linking to relevant construction documents
- Real-time Updates: WebSocket-based progress updates
- Interactive Chat: AI-powered chat interface for construction queries
- Python 3.8+
- Node.js 14+
- Airtable account
- OpenAI API key
- Procore account (optional)
- Create and activate virtual environment:
python -m venv venv
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Create
.env
file:
env
AIRTABLE_API_KEY=your_key_here
AIRTABLE_BASE_ID=appuojNVDfs9U7ccy
AIRTABLE_TABLE_NAME=tbl60mtZmcPavvtQH
OPENAI_API_KEY=your_key_here
PROCORE_CLIENT_ID=your_id_here
PROCORE_CLIENT_SECRET=your_secret_here
- Start the backend server:
bash
uvicorn api_analytics:app --reload
- Configure API endpoint:
javascript
// vanilla/services/config.js
const config = {
API_URL: 'http://localhost:8000',
AIRTABLE_API_KEY: 'your_key_here'
};
- Start the frontend server:
bash
cd vanilla
python -m http.server 8080 # Or use any static file server
POST /api/analytics
: Get construction analytics dataGET /api/divisions
: Get available CSI divisionsGET /api/wbs-categories
: Get WBS categoriesPOST /api/chat
: Chat with AI about construction insights
ws://localhost:8000/ws
: Real-time progress updates
.
├── backend/
│ ├── api_analytics.py # Main FastAPI application
│ ├── api_phases.py # Phase management API
│ ├── construction_ai_agent.py # AI integration
│ ├── document_reference.py # Document management
│ ├── procore_client.py # Procore integration
│ └── requirements.txt # Python dependencies
│
└── vanilla/
├── app.js # Main application logic
├── index.html # Frontend interface
├── styles.css # UI styling
└── services/
├── airtable.js # Airtable integration
└── config.js # Configuration
- Uses FastAPI for API development
- Implements CORS middleware for cross-origin requests
- Includes comprehensive error handling
- Supports WebSocket for real-time updates
- Pure JavaScript/jQuery implementation
- Responsive design with CSS Grid
- Real-time data updates
- Interactive filtering system
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
[Add your license here]
- Uses FastAPI for API development
- Implements CORS middleware for cross-origin requests
- Includes comprehensive error handling
- Supports WebSocket for real-time updates
- Pure JavaScript/jQuery implementation
- Responsive design with CSS Grid
- Real-time data updates
- Interactive filtering system
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
[Add your license here]
- Vlad Kuznetsov: Lead developer and architect of the DAViN project.
- Alex Lazarev: Frontend developer responsible for the UI design and implementation.