192 lines
6.6 KiB
Markdown
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.
|
|
|
|

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