- Set correct table ID: mx149yctebfwvys (ai_data_Memory) - Updated type column with SingleSelect options - Added all required columns for corrections, preferences, episodes, decisions, validation - Fixed column options for type, severity, status fields
5.4 KiB
5.4 KiB
Task: IT Site Survey AI Structure Improvement
Description
Restructure the IT Site Survey AI application to follow professional Python project standards with clear separation of concerns, modular design, and improved maintainability.
Current Issues
- Monolithic app.py file (792 lines) containing all application logic
- Mixed concerns (API, business logic, data models, utilities)
- Poor organization making code difficult to navigate
- Backup files cluttering the directory
- No clear separation between frontend and backend
- Missing comprehensive test suite
- Inconsistent with other applications on the server
Requirements
1. Directory Structure
Implement the standardized structure defined in PROJECT_STRUCTURE_IMPROVEMENTS.md:
- src/ directory for Python source code
- Clear separation of models, API, services, and utilities
- Dedicated frontend directory for UI assets
- tests/ directory for comprehensive test suite
- docs/ directory for documentation
- requirements/ directory for dependency management
2. Code Modularization
Split the monolithic app.py into logical modules:
- models/ - Data models and database schemas
- api/ - API endpoints organized by resource
- services/ - Business logic separated from API layer
- utils/ - Utility functions and helpers
- config.py - Configuration management
3. Testing Implementation
Create comprehensive test suite:
- Unit tests for each module
- Integration tests for API endpoints
- Database integration tests
- Test configuration and fixtures
4. Documentation
Create detailed documentation:
- API documentation
- Architecture overview
- Deployment instructions
- Development setup guide
5. Development Tools
Set up professional development environment:
- Code linting with Flake8
- Code formatting with Black
- Makefile for common tasks
- Git configuration and .gitignore
Technical Details
Source Directory Structure
src/
├── __init__.py
├── app.py # Application entry point
├── config.py # Configuration management
├── models/
│ ├── __init__.py
│ ├── survey.py # Survey data model
│ └── response.py # Response data model
├── api/
│ ├── __init__.py
│ ├── surveys.py # Survey management endpoints
│ ├── responses.py # Response handling endpoints
│ └── analytics.py # AI analysis endpoints
├── services/
│ ├── __init__.py
│ ├── survey_service.py # Survey business logic
│ ├── response_service.py # Response business logic
│ ├── ai_service.py # AI integration logic
│ └── export_service.py # Export functionality
├── utils/
│ ├── __init__.py
│ ├── database.py # Database utilities
│ └── validation.py # Input validation
└── templates/ # HTML templates
Frontend Directory Structure
frontend/
├── static/
│ ├── css/
│ │ └── styles.css # Main stylesheet
│ ├── js/
│ │ ├── app.js # Main JavaScript
│ │ └── dashboard.js # Dashboard JavaScript
│ └── images/ # Image assets
└── templates/
├── base.html # Base template
├── index.html # Main survey page
└── dashboard.html # Dashboard page
Test Directory Structure
tests/
├── __init__.py
├── conftest.py # Test configuration
├── test_models.py # Model tests
├── test_api.py # API endpoint tests
├── test_services.py # Service layer tests
└── test_utils.py # Utility function tests
Implementation Steps
Phase 1: Directory Restructuring (2 days)
- Create new directory structure
- Move existing files to appropriate locations
- Update import statements
- Verify application functionality
Phase 2: Code Modularization (3 days)
- Split app.py into logical modules
- Refactor API endpoints into separate files
- Extract business logic into service layer
- Create data models
- Implement configuration management
Phase 3: Testing Implementation (2 days)
- Set up testing framework (pytest)
- Create unit tests for each module
- Implement integration tests
- Add test configuration
Phase 4: Documentation and Tools (1 day)
- Create API documentation
- Write architecture overview
- Set up development tools (Flake8, Black)
- Create Makefile for common tasks
Acceptance Criteria
- Application runs identically to current version
- All existing API endpoints function correctly
- Code is organized in logical modules
- Comprehensive test suite with >80% coverage
- Documentation covers all major components
- Development tools configured and working
- No functionality lost during restructuring
- Backup of original structure maintained
- Clear migration path documented
Dependencies
- Python 3.8+
- Flask
- SQLAlchemy (for future database integration)
- pytest (for testing)
- flake8, black (for code quality)
Priority
High - Critical for long-term maintainability
Estimated Effort
8 days (64 hours)
Risk Mitigation
- Maintain backup of current structure
- Implement changes incrementally
- Test thoroughly at each phase
- Document rollback procedures
- Keep all API endpoints backward compatible