Skip to content

Commit 6d4e0a9

Browse files
hemanandrclaude
andcommitted
docs: update README files for Issue #17 completion
- Mark frontend web interface as completed in main README - Add comprehensive frontend-specific README with project structure - Document current status, tech stack, and next steps - Include development setup and available scripts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 7ae2dee commit 6d4e0a9

File tree

2 files changed

+136
-1
lines changed

2 files changed

+136
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ GET /api/test/monitoring/outages
110110
- **Network Monitoring**: ✅ ICMP ping, TCP connect, HTTP status checks with concurrent execution
111111
- **Configuration**: ✅ YAML-based with JSON Schema validation and version tracking
112112
- **Data Storage**: ✅ SQLite with automatic rollups and retention foundation
113-
- **Web Interface**: Real-time status dashboard and historical views
113+
- **Web Interface**: ✅ React app shell with routing and responsive layout
114114
- **Configuration Management**: ✅ Apply, list, and download configuration versions
115115
- **Settings Management**: ✅ Key-value store with watermark tracking for rollup jobs
116116
- **Alerting**: ✅ Status change detection with flap damping (2/2 thresholds)
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# ThingConnect Pulse - Frontend
2+
3+
React-based web interface for the ThingConnect Pulse network monitoring system.
4+
5+
## ✅ Current Status
6+
7+
**Issue #17 - App Shell & Routing: COMPLETED**
8+
- Complete application routing with React Router v7
9+
- Responsive layout with mobile-first design
10+
- ThingConnect branding and theming
11+
- Playwright testing support
12+
- Production build ready
13+
14+
## Quick Start
15+
16+
```bash
17+
# Install dependencies
18+
npm install
19+
20+
# Development server
21+
npm run dev
22+
# Opens on https://localhost:55608 (or next available port)
23+
24+
# Production build
25+
npm run build
26+
27+
# Code quality
28+
npm run lint
29+
npm run format
30+
```
31+
32+
## Project Structure
33+
34+
```
35+
src/
36+
├── components/
37+
│ ├── layout/ # App shell components
38+
│ │ ├── AppShell.tsx # Main layout wrapper
39+
│ │ ├── Header.tsx # Top navigation header
40+
│ │ ├── Navigation.tsx # Sidebar navigation
41+
│ │ └── Footer.tsx # Footer component
42+
│ ├── ui/ # Chakra UI components
43+
│ ├── LazyWrapper.tsx # Suspense wrapper
44+
│ └── PageLoader.tsx # Loading spinner
45+
├── pages/ # Route components
46+
│ ├── Dashboard.tsx # Main status dashboard (/)
47+
│ ├── History.tsx # Historical data (/history)
48+
│ ├── Config.tsx # Configuration UI (/config)
49+
│ ├── Settings.tsx # App settings (/settings)
50+
│ ├── EndpointDetail.tsx # Endpoint details (/endpoints/:id)
51+
│ └── NotFound.tsx # 404 page
52+
├── router/
53+
│ └── index.tsx # Route configuration
54+
├── api/
55+
│ ├── client.ts # Axios HTTP client
56+
│ └── types.ts # API type definitions
57+
├── utils/
58+
│ └── testIds.ts # Playwright test identifiers
59+
├── assets/ # Static assets (logos, images)
60+
├── providers/ # React context providers
61+
└── types/ # TypeScript type definitions
62+
```
63+
64+
## Key Features
65+
66+
### ✅ Implemented
67+
- **Responsive Layout**: Mobile-first design with breakpoint-based navigation
68+
- **React Router v7**: Lazy-loaded routes with code splitting
69+
- **Chakra UI v3**: Modern component library with theming
70+
- **ThingConnect Branding**: Logo integration and consistent styling
71+
- **Dark/Light Mode**: Theme toggle in header
72+
- **Mobile Navigation**: Collapsible sidebar with overlay
73+
- **Test Ready**: Playwright test identifiers and accessibility labels
74+
- **TypeScript**: Full type safety with strict mode
75+
- **ESLint**: Code quality enforcement with auto-fixing
76+
77+
### 🚧 Planned (Issue #18+)
78+
- Real-time dashboard with live endpoint status
79+
- Historical data visualization with charts
80+
- Configuration management UI
81+
- Settings management interface
82+
- CSV export functionality
83+
84+
## Technology Stack
85+
86+
- **Framework**: React 19 with TypeScript
87+
- **Routing**: React Router v7
88+
- **UI Framework**: Chakra UI v3
89+
- **Icons**: Lucide React v0.541.0
90+
- **Build Tool**: Vite v7
91+
- **HTTP Client**: Axios
92+
- **State Management**: TanStack Query (React Query)
93+
- **Testing**: Playwright (test identifiers ready)
94+
- **Code Quality**: ESLint, Prettier
95+
96+
## Available Scripts
97+
98+
- `npm run dev` - Start development server
99+
- `npm run build` - Production build
100+
- `npm run preview` - Preview production build
101+
- `npm run lint` - Run ESLint
102+
- `npm run lint -- --fix` - Auto-fix ESLint issues
103+
- `npm run format` - Format code with Prettier
104+
105+
## Environment Configuration
106+
107+
Create `.env` file in project root:
108+
109+
```env
110+
# API Configuration
111+
VITE_API_BASE_URL=https://localhost:7227/api
112+
VITE_API_TIMEOUT=30000
113+
114+
# Development
115+
VITE_DEV_TOOLS=true
116+
```
117+
118+
## Browser Support
119+
120+
- Chrome/Edge 88+
121+
- Firefox 85+
122+
- Safari 14+
123+
124+
## Development Notes
125+
126+
- All components use Chakra UI v3 API
127+
- Mobile-first responsive design approach
128+
- Lazy loading for optimal performance
129+
- TypeScript strict mode enabled
130+
- Test identifiers follow `data-testid` convention
131+
- ARIA labels for accessibility compliance
132+
133+
## Next Steps
134+
135+
Ready for **Issue #18: Live Board Page** implementation to add real-time monitoring dashboard functionality.

0 commit comments

Comments
 (0)