# Blueberry A modern WPF desktop application for Redmine issue management and time tracking. Built with .NET 8 and WPF-UI for a sleek, fluent design experience. ![Blueberry](/images/bb.ico) ## Features ### Core Functionality - **Issue Management**: View, search, and manage your assigned Redmine issues - **Time Tracking**: Log work hours with detailed comments and date selection - **Real-time Metrics**: Track today's, yesterday's, and monthly hours with daily averages - **Status Management**: Quick status updates for issues without leaving the app - **Multi-language Support**: Hungarian interface with easy localization ### Technical Features - **Offline Caching**: Intelligent caching system for improved performance - **Auto-updater**: Built-in updater for seamless application updates - **Modern UI**: Fluent Design with WPF-UI components - **Responsive Layout**: Adaptive interface that works on different screen sizes ## Screenshots The main interface provides: - **Left Panel**: Searchable issue list with project and status information - **Right Panel**: Time entry form with calendar integration and metrics dashboard - **Quick Actions**: Status updates, browser integration, and API configuration ## Installation ### Automatic Installation (Recommended) ```ps1 iwr https://blueberry.technopunk.space | iex ``` 1. Download the latest `BlueberryUpdater.exe` from the [Releases](https://git.technopunk.space/tomi/Blueberry/releases) page 2. Run the updater - it will automatically download and install the latest version 3. The application will be installed to `C:\Program Files\Blueberry` ### Manual Installation 1. Download the latest `payload.zip` from the [Releases](https://git.technopunk.space/tomi/Blueberry/releases) page 2. Extract to your desired location 3. Run `Blueberry.exe` ## Configuration ### First-time Setup 1. Launch Blueberry 2. Click the "API kulcs..." button in the bottom-left corner 3. Enter your Redmine URL (e.g., `https://redmine.example.com`) 4. Enter your API key (get this from your Redmine account settings) 5. Click "Csatlakozás" to connect ### API Key Location In your Redmine instance: 1. Go to **My Account** → **API access key** 2. Copy your API key 3. Use the "API kulcs link" button in Blueberry to go directly there ## Usage ### Time Tracking 1. Select one or more dates using the calendar button 2. Enter the issue number (e.g., `65432`) 3. Enter hours worked (e.g., `0.25` for 15 minutes) 4. Add a descriptive comment 5. Click "Send" to log your time ### Issue Management - **Search**: Use the search box to filter issues by title or ID - **Open in Browser**: Click the open button next to any issue to view it in your browser - **Status Updates**: Select an issue and use "Státusz..." to change its status - **Create New**: Use "Új jegy" to create new issues (requires project and tracker selection) ### Metrics Dashboard The top-right cards show: - **Mai órák**: Hours logged today - **Tegnapi órák**: Hours logged yesterday - **Ehavi órák**: Total hours this month - **Átlag per nap**: Daily average for the current month ## Architecture ### Project Structure ``` Blueberry/ ├── Blueberry/ # Main WPF application │ ├── MainWindow.xaml # Primary interface │ ├── IssueWindow.xaml # Issue detail view │ └── Resources/ # Custom fonts (Inter, Roboto, Zalando) ├── Blueberry.Redmine/ # Redmine API integration │ ├── Dto/ # Data transfer objects │ ├── RedmineApiClient.cs # HTTP client for Redmine API │ ├── RedmineManager.cs # Business logic layer │ └── RedmineCache.cs # Caching system └── BlueberryUpdater/ # Auto-updater utility └── Program.cs # Installation/update logic ``` ### Technologies Used - **.NET 8** - Latest .NET framework with modern features - **WPF** - Windows Presentation Foundation for desktop UI - **WPF-UI** - Modern Fluent Design components - **Microsoft.Extensions** - Logging, HTTP, and hosting - **System.Text.Json** - JSON serialization for API responses ## Development ### Prerequisites - Visual Studio 2022 (17.14+) - .NET 8.0 SDK - Windows 10/11 (targeting Windows 10 17763+) ### Building ```bash git clone https://git.technopunk.space/tomi/Blueberry.git cd Blueberry dotnet build Blueberry.sln ``` ### Running ```bash dotnet run --project Blueberry/Blueberry.csproj ``` ## Configuration Files The application stores configuration in: - **AppData**: `%APPDATA%\Blueberry\` for user settings and cache - **Installation**: `C:\Program Files\Blueberry\` for application files ### Cache Files - `Statuses.json` - Cached issue statuses - `Priorities.json` - Cached priority levels - `CustomFields.json` - Cached custom field definitions - `Projects.json` - Cached project list ## API Endpoints Used Blueberry integrates with Redmine's REST API: - `/issues.json` - Issue listing and creation - `/time_entries.json` - Time tracking - `/users/current.json` - Current user info - `/issue_statuses.json` - Available statuses - `/projects.json` - Project listing - `/custom_fields.json` - Custom field definitions ## Troubleshooting ### Connection Issues - Verify your Redmine URL is accessible - Check that your API key is valid and has proper permissions - Ensure your Redmine instance has the REST API enabled ### Performance Issues - Cache is automatically refreshed every hour - Use the "Frissítés" button to manually refresh data - Large issue lists may take time to load initially ### Updater Issues - Run BlueberryUpdater.exe as administrator if installation fails - Check your internet connection for downloading updates - Temporarily disable antivirus if it blocks the installation ## Contributing 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Support For issues and feature requests: - Create an issue in the [repository](https://git.technopunk.space/tomi/Blueberry/issues) - Check existing issues for known problems - Include your Redmine version and Blueberry version in bug reports ## Changelog ### Latest Version - Improved caching performance - Enhanced UI responsiveness - Bug fixes for time entry validation ### Previous Versions See the [Releases](https://git.technopunk.space/tomi/Blueberry/releases) page for detailed version history. --- **Blueberry** - Making Redmine time tracking and issue management effortless on Windows.