mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
257 lines
6.9 KiB
Markdown
257 lines
6.9 KiB
Markdown
# MetaBuilder - 4-Level Application Platform
|
|
|
|
## Overview
|
|
MetaBuilder is a comprehensive meta-application platform that allows you to design, build, and manage web applications through a hierarchical 4-level system. Each level provides increasing access and control over the application.
|
|
|
|
## Application Levels
|
|
|
|
### Level 1 - Public Website
|
|
- Public-facing pages accessible to all visitors
|
|
- Marketing content, landing pages, general information
|
|
- No authentication required
|
|
|
|
### Level 2 - User Area
|
|
- Authenticated user dashboard and features
|
|
- User profile management
|
|
- Comment system and user interactions
|
|
- Requires user authentication
|
|
|
|
### Level 3 - Admin Panel (Django-style)
|
|
- Data model management
|
|
- User administration
|
|
- Content moderation
|
|
- Requires admin role
|
|
|
|
### Level 4 - God-Tier Builder Panel
|
|
- **Complete application design and configuration**
|
|
- Visual component editor with drag-and-drop
|
|
- Page routing and URL configuration
|
|
- Component hierarchy management
|
|
- User management system
|
|
- Data schema designer
|
|
- Workflow builder
|
|
- Lua script editor with live execution
|
|
- Database export/import
|
|
- Requires god role
|
|
|
|
## Default Users
|
|
|
|
After initialization, the following users are available:
|
|
|
|
| Username | Password | Role | Access Levels |
|
|
|----------|----------|-------|---------------|
|
|
| god | god123 | god | 1, 2, 3, 4 |
|
|
| admin | admin | admin | 1, 2, 3 |
|
|
| demo | demo | user | 1, 2 |
|
|
|
|
## Key Features
|
|
|
|
### Page Routes Manager
|
|
- Configure custom page routes and URLs
|
|
- Set authentication requirements per page
|
|
- Assign minimum role requirements
|
|
- Map pages to application levels
|
|
|
|
### Component Hierarchy Editor
|
|
- Visual tree view of component structure
|
|
- Drag-and-drop component reorganization
|
|
- Add components from catalog
|
|
- Real-time hierarchy updates
|
|
- Component organization per page
|
|
|
|
### Component Configuration Dialog
|
|
- Configure component properties
|
|
- Set custom styles (Tailwind classes + CSS-in-JS)
|
|
- Map event handlers to Lua scripts
|
|
- JSON-based configuration editing
|
|
|
|
### User Management
|
|
- Create/edit/delete users
|
|
- Configure user roles and permissions
|
|
- Set user profiles and bios
|
|
- SHA-512 password hashing
|
|
|
|
### Data Schema Designer
|
|
- Define data models declaratively
|
|
- Field types with validation
|
|
- Relationships between models
|
|
- Auto-generate CRUD interfaces
|
|
|
|
### Workflow Builder
|
|
- Visual workflow design
|
|
- Trigger, action, condition, transform nodes
|
|
- Lua script integration
|
|
- Edge connections between nodes
|
|
|
|
### Lua Script System
|
|
- Monaco code editor with syntax highlighting
|
|
- Live script execution
|
|
- Parameter definition
|
|
- Return type specification
|
|
- Reusable script library
|
|
- Common snippet templates
|
|
|
|
### Database Management
|
|
- Complete KV-based persistence
|
|
- Export/import functionality
|
|
- Stores: users, credentials, pages, components, workflows, schemas, Lua scripts
|
|
|
|
## Seed Data
|
|
|
|
The system automatically creates comprehensive seed data including:
|
|
|
|
### Sample Pages
|
|
- Home page (Level 1, public)
|
|
- About page (Level 1, public)
|
|
- Dashboard (Level 2, user auth)
|
|
- Profile (Level 2, user auth)
|
|
- Admin Users (Level 3, admin auth)
|
|
- Admin Content (Level 3, admin auth)
|
|
|
|
### Component Hierarchies
|
|
- **Home Page**: Full landing page with hero, features grid, and CTA
|
|
- Container with responsive layout
|
|
- Hero section with heading, subtitle, and button
|
|
- 3-column feature cards
|
|
- Call-to-action section
|
|
|
|
- **Dashboard**: User dashboard layout
|
|
- Header with title and status badge
|
|
- Grid of info cards
|
|
- Progress indicators
|
|
|
|
### Sample Lua Scripts
|
|
- Email validation script
|
|
- Discount calculator
|
|
- Ready-to-use template functions
|
|
|
|
### Sample Comments
|
|
- Pre-populated user comments for testing
|
|
|
|
## Component Catalog
|
|
|
|
The platform includes 20+ pre-configured shadcn components:
|
|
|
|
**Layout**: Container, Flex, Grid, Stack
|
|
**Input**: Button, Input, Textarea, Checkbox, Switch, Slider
|
|
**Typography**: Heading, Text, Label
|
|
**Display**: Card, Badge, Avatar, Separator, Alert
|
|
**Feedback**: Progress, Alert
|
|
**Data**: Table
|
|
|
|
Each component includes:
|
|
- Default props
|
|
- Configurable properties
|
|
- Style customization
|
|
- Event handler mapping
|
|
- Child nesting rules
|
|
|
|
## Database Schema
|
|
|
|
The system uses KV storage with the following collections:
|
|
|
|
```typescript
|
|
{
|
|
users: User[]
|
|
credentials: Record<username, passwordHash>
|
|
pages: PageConfig[]
|
|
componentHierarchy: Record<nodeId, ComponentNode>
|
|
componentConfigs: Record<nodeId, ComponentConfig>
|
|
workflows: Workflow[]
|
|
luaScripts: LuaScript[]
|
|
schemas: ModelSchema[]
|
|
comments: Comment[]
|
|
appConfig: AppConfiguration
|
|
}
|
|
```
|
|
|
|
## Technical Architecture
|
|
|
|
### Frontend Stack
|
|
- React 19 + TypeScript
|
|
- Vite build system
|
|
- Tailwind CSS v4
|
|
- shadcn/ui components
|
|
- Phosphor Icons
|
|
- Monaco Editor (code editing)
|
|
- Fengari (Lua interpreter)
|
|
|
|
### State Management
|
|
- React hooks for UI state
|
|
- Spark KV for persistent data
|
|
- Async data loading patterns
|
|
|
|
### Styling System
|
|
- Tailwind utility classes
|
|
- CSS custom properties for theming
|
|
- Component-level style overrides
|
|
- Responsive design patterns
|
|
|
|
## Usage Guide
|
|
|
|
### Getting Started
|
|
1. Log in with god user (username: `god`, password: `god123`)
|
|
2. Navigate to Level 4 (automatically redirected)
|
|
3. Explore the different configuration panels
|
|
|
|
### Creating a New Page
|
|
1. Go to "Page Routes" tab
|
|
2. Click "New Page Route"
|
|
3. Configure path, title, level, and auth requirements
|
|
4. Save the page
|
|
|
|
### Designing Component Layout
|
|
1. Go to "Components" tab (Component Hierarchy Editor)
|
|
2. Select a page from the dropdown
|
|
3. Add components from the catalog (right panel)
|
|
4. Drag and drop to reorganize
|
|
5. Click gear icon to configure component properties
|
|
|
|
### Configuring Components
|
|
1. In the hierarchy, click the gear icon on any component
|
|
2. Switch between Props, Styles, and Events tabs
|
|
3. Set component-specific properties
|
|
4. Add Tailwind classes or custom styles
|
|
5. Map events to Lua script IDs
|
|
6. Save configuration
|
|
|
|
### Managing Users
|
|
1. Go to "Users" tab
|
|
2. Create new users or edit existing ones
|
|
3. Set roles to control access levels
|
|
4. Passwords are automatically hashed with SHA-512
|
|
|
|
### Writing Lua Scripts
|
|
1. Go to "Lua Scripts" tab
|
|
2. Create a new script
|
|
3. Define parameters and return type
|
|
4. Write Lua code in Monaco editor
|
|
5. Test execution
|
|
6. Reference script ID in component event handlers
|
|
|
|
### Exporting/Importing Data
|
|
1. Use the Download button in the header to export entire database
|
|
2. Use the Upload button to import previously exported data
|
|
3. Data is stored as JSON
|
|
|
|
## Future Enhancements
|
|
|
|
Potential additions to the platform:
|
|
- Live preview of pages being designed
|
|
- Component version control
|
|
- Template library for common patterns
|
|
- Visual workflow debugger
|
|
- API endpoint designer
|
|
- Theme customization UI
|
|
- Multi-language support
|
|
- Collaboration features
|
|
- Component marketplace
|
|
|
|
## Notes
|
|
|
|
- All data persists in Spark KV storage
|
|
- Passwords use SHA-512 hashing
|
|
- Component configurations stored separately from hierarchy
|
|
- Seed data only loads once (checks for existing pages)
|
|
- Full database export/import for backup and migration
|