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
npm install
cargo tauri devApplication 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 documentationKey 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.rsandload.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 warningsComprehensive Testing - Unit + integration tests required
Feature Documentation - Use
./scripts/bert.sh feature "Feature Name"
Development Workflows
Adding Features:
Quality Checks:
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 - Development workflow and standards
Architecture Overview - Technical overview
Deep Architecture - Detailed system design
Documentation Standards - Code documentation templates
First Contribution
Pick an issue labeled
good first issueon GitHubFork and clone the repo, run setup above
Create a feature branch:
git checkout -b feature/my-fixMake changes, run quality checks, submit PR
Last updated