Thank you for your interest in contributing to Work.Log! This document provides guidelines for contributing to the project.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear, descriptive title
- Steps to reproduce the bug
- Expected vs actual behavior
- Your environment (OS, app version, desktop/web)
- Screenshots if applicable
- Check existing issues for similar suggestions
- Create a new issue with the "enhancement" label
- Describe the feature and its use case
- Explain why it would be useful
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes
- Test your changes on both platforms if applicable
- Commit with clear messages (see below)
- Push to your fork
- Open a Pull Request
# Install dependencies (Ubuntu/Debian)
sudo apt install build-essential cmake extra-cmake-modules \
qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev \
libqt5sql5-sqlite kirigami2-dev libkf5i18n-dev libkf5coreaddons-dev
# Build
cd WorkLog.Desktop
mkdir -p build && cd build
cmake ..
makecd WorkLog.Web/Website
dotnet restore
dotnet runOr with Docker:
cd WorkLog.Web
docker compose up --buildUse conventional commit style:
feat:New featurefix:Bug fixrefactor:Code refactoringdocs:Documentation changesstyle:Formatting, no code changetest:Adding testschore:Maintenance tasks
Examples:
feat: Add tag filtering to session listfix: Correct week number calculation for Week 0docs: Update installation instructions
- Follow KDE/Qt coding conventions
- Use meaningful variable names
- Add comments for complex logic
- Follow .NET conventions
- Use nullable reference types
- Keep controllers thin, logic in services
- Desktop: Run the built executable and test manually
- Web: Access http://localhost:5000 (dotnet) or http://localhost:5080 (Docker)
- Test both light and dark modes
- Test the cloud sync feature if you have AWS configured
Feel free to open an issue for questions or discussion.