diff --git a/docs/ai/PHASE2.md b/docs/ai/PHASE2.md index deb8a55..690df26 100644 --- a/docs/ai/PHASE2.md +++ b/docs/ai/PHASE2.md @@ -1,7 +1,7 @@ # Phase 2 Implementation Plan: Flask Web App Core -**Status:** Step 4 Complete ✅ - Authentication System (Days 7-8) -**Progress:** 8/14 days complete (57%) +**Status:** Step 5 Complete ✅ - Basic UI Templates (Days 9-10) +**Progress:** 10/14 days complete (71%) **Estimated Duration:** 14 days (2 weeks) **Dependencies:** Phase 1 Complete ✅ @@ -34,8 +34,17 @@ - Bootstrap 5 dark theme UI templates - 30+ authentication tests - 1,200+ lines of code added -- ⏳ **Step 5: Basic UI Templates** (Days 9-10) - NEXT -- 📋 **Step 6: Docker & Deployment** (Day 11) - Pending +- ✅ **Step 5: Basic UI Templates** (Days 9-10) - COMPLETE + - base.html template with navigation and slate dark theme + - dashboard.html with stats cards and recent scans + - scans.html with pagination and filtering + - scan_detail.html with comprehensive scan results display + - login.html updated to use dark theme + - All templates use matching color scheme from report_mockup.html + - AJAX-powered dynamic data loading + - Auto-refresh for running scans + - Responsive design with Bootstrap 5 +- 📋 **Step 6: Docker & Deployment** (Day 11) - NEXT - 📋 **Step 7: Error Handling & Logging** (Day 12) - Pending - 📋 **Step 8: Testing & Documentation** (Days 13-14) - Pending diff --git a/src/scanner.py b/src/scanner.py index 0860cf3..3e7716e 100644 --- a/src/scanner.py +++ b/src/scanner.py @@ -20,8 +20,8 @@ import yaml from libnmap.process import NmapProcess from libnmap.parser import NmapParser -from screenshot_capture import ScreenshotCapture -from report_generator import HTMLReportGenerator +from src.screenshot_capture import ScreenshotCapture +from src.report_generator import HTMLReportGenerator # Force unbuffered output for Docker sys.stdout.reconfigure(line_buffering=True) diff --git a/web/api/scans.py b/web/api/scans.py index f1901d4..dd5606c 100644 --- a/web/api/scans.py +++ b/web/api/scans.py @@ -11,7 +11,8 @@ from sqlalchemy.exc import SQLAlchemyError from web.auth.decorators import api_auth_required from web.services.scan_service import ScanService -from web.utils.validators import validate_config_file, validate_page_params +from web.utils.validators import validate_config_file +from web.utils.pagination import validate_page_params bp = Blueprint('scans', __name__) logger = logging.getLogger(__name__) diff --git a/web/templates/base.html b/web/templates/base.html new file mode 100644 index 0000000..e2b9bbe --- /dev/null +++ b/web/templates/base.html @@ -0,0 +1,345 @@ + + +
+ + +