Files
Blueberry/README.md
2025-12-15 09:26:27 +01:00

192 lines
6.6 KiB
Markdown

# 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)
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.