Overview
Welcome to BERT development! BERT is built with Rust + Leptos + Bevy using professional development standards and comprehensive documentation requirements.
Quick Setup
Prerequisites
Rust: Install via rustup.rs
Tauri Prerequisites: Follow the Tauri guide
Get Started
git clone git@github.com:halcyonic-systems/bert.git
cd bert
cargo tauri dev
Application opens with BERT interface - try creating a system model to verify everything works.
Project Structure
Understanding the codebase structure helps you navigate and contribute effectively:
bert/
├── src/ # Main source code
│ ├── bevy_app/ # System model and visualization (Bevy)
│ ├── leptos_app/ # User interface components (Leptos)
│ └── main.rs # Application entry point
├── src-tauri/ # Tauri desktop integration
├── assets/ # Static assets (icons, fonts)
├── docs/ # Technical documentation
└── private-dev/ # Research and development notes
Key Modules
User Interface (Leptos):
src/leptos_app/mod.rs
: Main UI component definitionsrc/leptos_app/components/
: Reusable UI components (buttons, sliders, etc.)src/leptos_app/details.rs
: Property panel for editing element propertiessrc/leptos_app/tree/
: System hierarchy tree view
System Model and Visualization (Bevy):
src/bevy_app/mod.rs
: Main Bevy app setupsrc/bevy_app/components/
: Core data model componentssystem_elements.rs
: Definitions for systems, subsystems, etc.connections.rs
: Definitions for flows and interfaces
src/bevy_app/bundles/spawn/
: Entity creation logicsrc/bevy_app/systems/
: Bevy ECS systems for updating the modelsrc/bevy_app/data_model/
: Serialization/deserialization
Common Development Tasks
Add New Property to System Elements
src/bevy_app/components/system_elements.rs
- Add the propertysrc/leptos_app/details.rs
- Add UI for editingsrc/bevy_app/data_model/save.rs
andload.rs
- Update persistence
Change System Element Appearance
src/bevy_app/bundles/spawn/main_system.rs
- Visual definitionsrc/bevy_app/systems/ui/color.rs
- Color handling
Modify Connection Rendering
src/bevy_app/systems/ui/flow/curve.rs
- Flow renderingsrc/bevy_app/bundles/spawn/flow.rs
- Flow creation
Development Standards
BERT maintains professional development standards:
100% Documentation Compliance - All code must follow template guidelines
No Clippy Warnings - Code must pass
cargo clippy --all-targets -- -D warnings
Comprehensive Testing - Unit + integration tests required
Feature Documentation - Use
./scripts/bert.sh feature "Feature Name"
Development Workflows
Adding Features:
git checkout -b feature/my-feature
./scripts/bert.sh feature "My Feature" # Generate documentation
# Implement + document + test
Quality Checks:
cargo fmt --all
cargo clippy --all-targets -- -D warnings
cargo test --all
Learning Path
Start at the model: Understand core components in
src/bevy_app/components/
Explore visualization: See how components render in
src/bevy_app/bundles/spawn/
Trace interactions: Follow user interactions in
src/bevy_app/systems/ui/
Examine UI components: Look at Leptos UI in
src/leptos_app/
Essential Resources
Contributing Guide - Complete development workflow
Architecture Overview - High-level technical overview
Current Capabilities - See what's available in v0.2.0
External Documentation:
First Contribution
Read the Contributing Guide - Complete workflow details
Review Documentation Standards - Template requirements (link above)
Create Feature Branch - Follow
feature/descriptive-name
patternGenerate Documentation - Use
./scripts/bert.sh feature "Feature Name"
Last updated