Initialize complete Wails (Go + React) database management tool
## Project Structure
- Frontend: React 18 + TypeScript + Vite
- Backend: Go 1.23 + Gin + GORM + SQLite + Zap
- Desktop: Wails v2
## Features Implemented
### UI/UX Design
- Complete design system with colors, typography, spacing
- Wireframes for all major screens
- User flows and interaction specifications
- Layout design with 3-panel architecture
### Frontend Components
- ConnectionPanel: Database connection sidebar with status indicators
- AppLayout: Resizable main layout framework
- MenuBar & ToolBar: Navigation and quick actions
- QueryEditor: SQL editor with syntax highlighting support
- DataGrid: Sortable, filterable, editable data table
- TableStructure: Table metadata viewer
- StatusBar: Connection info and query statistics
- StatusIndicator: Animated connection status component
### Backend Services
- Wails bindings: 15+ methods exposed to frontend
- Connection management: CRUD operations with connection pooling
- Query execution: SQL execution with result handling
- Table metadata: Schema introspection
- Encryption service: AES-256-GCM password encryption
- HTTP API: RESTful endpoints for debugging/integration
### Documentation
- Design system specification
- Feature requirements document
- Wireframes and user flows
- API testing guide
- Project README
## Technical Details
- Password encryption using AES-256-GCM
- Thread-safe connection manager with sync.RWMutex
- Unified error handling and logging
- Clean architecture with dependency injection
- SQLite for storing user data (connections, history)
🤖 Generated with Qoder
8.3 KiB
uzdb Feature Specification
Overview
uzdb is a lightweight database management tool built with Wails (Go + React). It provides essential database operations without the complexity of enterprise tools like DBeaver or Navicat.
Target Users
- Developers - Need quick database access for debugging and development
- Small Teams - Want a simple, fast tool for daily database tasks
- Students/Learners - Need an easy-to-use SQL client for learning
Supported Databases (MVP)
Phase 1 (Initial Release)
- ✅ MySQL 5.7+ / 8.0+
- ✅ PostgreSQL 12+
- ✅ SQLite 3.x
Phase 2 (Future)
- ⏳ MariaDB 10.3+
- ⏳ Microsoft SQL Server
- ⏳ MongoDB (basic support)
Core Features
1. Connection Management
1.1 Create Connection
Priority: P0
Description: Users can create new database connections
Requirements:
- Support MySQL, PostgreSQL, SQLite
- Store connection details securely
- Test connection before saving
- Support SSH tunneling (Phase 2)
UI Components:
- Connection dialog with form fields
- Database type selector
- Test connection button
- Advanced options accordion
1.2 Connection List
Priority: P0
Description: View and manage saved connections
Requirements:
- Display all saved connections
- Show connection status (connected/disconnected)
- Quick connect double-click
- Right-click context menu
UI Components:
- Sidebar connection tree
- Status indicators
- Context menu
1.3 Edit/Delete Connection
Priority: P0
Description: Modify or remove existing connections
Requirements:
- Edit connection properties
- Duplicate connection
- Delete with confirmation
- Cannot delete active connection
2. Schema Explorer
2.1 Database Navigation
Priority: P0
Description: Browse database structure in sidebar
Requirements:
- Expand/collapse databases
- Show schemas (PostgreSQL)
- List tables, views, procedures
- Icon differentiation by object type
UI Components:
- Tree view component
- Lazy loading for large schemas
- Search/filter capability (Phase 2)
2.2 Table Metadata
Priority: P0
Description: View table structure and information
Requirements:
- Column list with types and constraints
- Indexes display
- Foreign keys relationships
- Triggers list
UI Components:
- Right sidebar panel
- Tabbed interface for different metadata types
3. Query Editor
3.1 SQL Editor
Priority: P0
Description: Write and execute SQL queries
Requirements:
- Syntax highlighting (SQL keywords, strings, comments)
- Line numbers
- Basic autocomplete (table/column names)
- Multiple tabs support
- Query history (Phase 2)
UI Components:
- Monaco Editor or CodeMirror
- Tab bar for multiple queries
- Toolbar with run/save buttons
3.2 Query Execution
Priority: P0
Description: Execute SQL and view results
Requirements:
- Execute selected text or full query
- Show execution time
- Display row count
- Cancel long-running queries
- Error message display with line number
Keyboard Shortcuts:
Ctrl+Enter: Execute queryCtrl+R: Refresh results
3.3 Query Snippets
Priority: P2
Description: Save and reuse common queries
Requirements:
- Save query as snippet
- Organize snippets by category
- Insert snippet into editor
- Share snippets (Phase 3)
4. Data Grid
4.1 Results Display
Priority: P0
Description: Show query results in tabular format
Requirements:
- Virtual scrolling for large datasets
- Column resizing
- Sort by clicking headers
- Fixed header row
- Alternating row colors
Performance:
- Render 1000+ rows smoothly
- Load data in chunks (100 rows at a time)
4.2 Data Editing
Priority: P1
Description: Edit cell values inline
Requirements:
- Double-click to edit
- Validate data types
- Show NULL indicator
- Commit on blur or Enter
- Escape to cancel
Cell Editors:
- Text input for strings
- Number input for integers/decimals
- Date picker for dates
- Checkbox for booleans
- Dropdown for enums
4.3 Pagination & Navigation
Priority: P0
Description: Navigate through result sets
Requirements:
- Page size selector (25, 50, 100, 500)
- Jump to page input
- First/Previous/Next/Last buttons
- Total row count display
- Limit/offset in query
5. Data Export/Import
5.1 Export Data
Priority: P0
Description: Export table/query results to file
Requirements:
- Formats: CSV, JSON, SQL INSERT
- Select destination path
- Configure export options
- Show progress for large exports
Export Options (CSV):
- Delimiter selection (comma, semicolon, tab)
- Include/exclude headers
- Quote character
- Encoding (UTF-8 default)
Export Options (JSON):
- Pretty print vs compact
- Array of objects vs arrays
5.2 Import Data
Priority: P1
Description: Import data from files
Requirements:
- Import CSV/JSON to table
- Map columns
- Preview before import
- Handle errors gracefully
- Transaction support (rollback on error)
6. Additional Features
6.1 Find in Results
Priority: P1
Description: Search within query results
Requirements:
- Case-sensitive toggle
- Match whole word
- Highlight matches
- Navigate between matches
6.2 Query History
Priority: P2
Description: Track executed queries
Requirements:
- Store last 100 queries per connection
- Search history
- Re-execute from history
- Pin important queries
6.3 Bookmarks
Priority: P2
Description: Save frequently used queries
Requirements:
- Bookmark query with name
- Organize in folders
- Quick access from sidebar
Non-Functional Requirements
Performance
- App startup: < 2 seconds
- Connection open: < 1 second (local)
- Query results render: < 100ms for 100 rows
- Memory usage: < 200MB idle
Security
- Passwords stored encrypted (keyring/keystore)
- No plain-text credentials in config files
- SSL/TLS support for connections
- Sanitize SQL inputs to prevent injection in logs
Accessibility
- WCAG 2.1 AA compliance
- Keyboard navigation throughout
- Screen reader support
- High contrast mode (Phase 2)
Internationalization
- English (initial)
- Chinese (Simplified) (Phase 2)
- Spanish (Phase 3)
Technical Architecture
Frontend (React + TypeScript)
src/
├── components/
│ ├── Sidebar/
│ │ ├── ConnectionTree.tsx
│ │ └── SchemaExplorer.tsx
│ ├── Editor/
│ │ ├── QueryEditor.tsx
│ │ └── SQLEditor.tsx
│ ├── Grid/
│ │ ├── DataGrid.tsx
│ │ └── CellEditor.tsx
│ ├── Dialogs/
│ │ ├── ConnectionDialog.tsx
│ │ └── ExportDialog.tsx
│ └── common/
│ ├── Button.tsx
│ ├── Input.tsx
│ └── Modal.tsx
├── hooks/
│ ├── useQuery.ts
│ └── useConnection.ts
├── stores/
│ ├── connectionStore.ts
│ └── queryStore.ts
└── utils/
├── formatters.ts
└── validators.ts
Backend (Go)
internal/
├── database/
│ ├── mysql.go
│ ├── postgres.go
│ ├── sqlite.go
│ └── connection.go
├── models/
│ ├── connection.go
│ ├── query.go
│ └── table.go
└── handlers/
├── connection_handler.go
├── query_handler.go
└── export_handler.go
Out of Scope (for MVP)
❌ Visual query builder
❌ ER diagrams
❌ Database comparison/sync
❌ User management
❌ Backup/restore
❌ Query profiling/optimization
❌ Multi-tab result sets
❌ Stored procedure debugger
❌ Real-time collaboration
Success Metrics
- Usability: New user can connect and run query in < 2 minutes
- Performance: Query results load in < 500ms for typical queries
- Stability: < 1 crash per 100 hours of usage
- Adoption: 100+ GitHub stars in first month
Future Roadmap
Phase 2 (v0.2)
- MariaDB support
- SSH tunneling
- Query history
- Data import
- Dark theme
Phase 3 (v0.3)
- SQL Server support
- Visual query builder (basic)
- Snippet sharing
- Plugin system
Phase 4 (v1.0)
- MongoDB support
- ER diagram viewer
- Team features (shared connections)
- Auto-update