# Ziya - Slint Edition **One stop shop for your trading habit** - Now powered by Slint and Rust! > **/dˤiˈjaːʔ/**, "zee‑yah" — *Proper noun, meaning "light"* > A bismillahDAO creation ## Overview This is a modern rewrite of the Ziya trading platform using [Slint](https://slint.dev/) for the UI and Rust for the backend logic. Slint provides a declarative UI language that makes it easy to create beautiful, native desktop applications. ## Features - **Modern Native UI**: Built with Slint's declarative UI language - **Fast Performance**: Native Rust performance with efficient rendering - **Clean Architecture**: Separated UI and business logic - **Async Operations**: Non-blocking token fetching and user management - **Modular Design**: Well-organized codebase with clear separation of concerns ### Application States - **Loading**: Initial app startup and initialization - **Login**: User authentication interface - **Dashboard**: Main trading dashboard with token search - **Hunting Ground**: Advanced trading tools (placeholder) - **Profile**: User profile and wallet information ## Project Structure ``` ziya-slint/ ├── src/ │ ├── main.rs # Application entry point │ ├── lib.rs # Module organization │ ├── app_state.rs # Application state management │ └── services/ # Business logic services │ ├── mod.rs │ ├── token_service.rs # Token data and search │ └── user_service.rs # User authentication and profiles ├── ui/ │ └── app-window.slint # Main UI definition ├── Cargo.toml # Project dependencies └── build.rs # Build configuration ``` ## Getting Started ### Prerequisites - Rust 1.70+ (recommended via [rustup](https://rustup.rs/)) - Git ### Installation 1. Clone the repository: ```bash git clone cd ziya-slint ``` 2. Build and run: ```bash cargo run ``` ## Development ### Running in Development Mode ```bash # Run with debug logging RUST_LOG=debug cargo run ``` ### Building for Release ```bash cargo build --release ``` ## Architecture ### UI Layer (Slint) The UI is defined in `ui/app-window.slint` using Slint's declarative language. Key features: - **State-based rendering**: Different UI states for loading, login, dashboard, etc. - **Reactive properties**: Automatic UI updates when data changes - **Component composition**: Reusable UI elements - **Modern styling**: Clean, professional design ### Business Logic (Rust) - **Services Pattern**: Separate services for different concerns - **Async/Await**: Non-blocking operations for better UX - **Error Handling**: Proper error propagation with `anyhow` - **Type Safety**: Strong typing throughout the application ### Key Components 1. **TokenService**: Handles token data fetching and search 2. **UserService**: Manages user authentication and profiles 3. **AppState**: Central application state management 4. **Main**: Coordinates UI and business logic ## Comparison with Vue/Electron Version | Aspect | Vue/Electron | Slint/Rust | |--------|--------------|------------| | **Performance** | ~50MB memory, slower startup | ~10MB memory, instant startup | | **Bundle Size** | ~100MB with Node.js | ~5MB standalone binary | | **Development** | Hot reload, web tools | Fast compilation, native debugging | | **Deployment** | Requires Node.js runtime | Single self-contained binary | | **UI Development** | HTML/CSS/JS knowledge required | Slint DSL (QML-like, simpler) | | **Type Safety** | TypeScript (optional) | Full Rust type safety | ## Contributing This is part of the bismillahDAO ecosystem. When contributing: 1. Follow Rust conventions and best practices 2. Keep UI logic in Slint files, business logic in Rust 3. Write tests for business logic 4. Update documentation for new features ## Migration Status ### ✅ Completed Features - [x] Basic application structure - [x] Loading, login, and dashboard states - [x] Token list display and search - [x] User profile management - [x] Navigation between views - [x] Mock data services ### 🚧 In Progress - [ ] Real API integration - [ ] Advanced token analysis - [ ] Wallet integration - [ ] Trading features ### 📋 Planned Features - [ ] Real-time token price updates - [ ] Advanced charting - [ ] Portfolio tracking - [ ] Trading automation - [ ] Export/import functionality ## License MIT License - see LICENSE file for details. ## About bismillahDAO This project is created by bismillahDAO, focused on building ethical and innovative trading tools for the cryptocurrency community.