Espresso timer with analytics for home baristas
Coffee Shot Timer is a precision Android app designed specifically for espresso machine enthusiasts who want to systematically improve their brewing skills. The app combines intelligent timing with detailed data capture to help you achieve consistent, dialed-in espresso extractions.
- Precision timer with clear visual feedback
- Brew ratio tracking with intuitive sliders; supports single-shot baskets (down to 5 g)
- Shot logging and analysis: times, grinder settings, tasting notes, and trends over time
- Bean management with roast dates, freshness indicators, and attachable package photos
- Grinder setup tailored to your equipment; record and compare grinder settings
- Simple onboarding and streamlined navigation; About screen and in-app feedback
- Built for daily use: 100% offline, autosave drafts, and a fast, stress-free UI
- ☕ Espresso machine or manual espresso maker owners
- 🎯 Coffee enthusiasts wanting reproducible results
- 📚 Systematic learners who like data-driven improvement
- 🔧 Baristas looking to refine their technique
- 🏠 Home coffee enthusiasts serious about quality
Love Coffee Shot Timer? Consider supporting its development!
Every coffee fuels late-night coding sessions and exciting new features like pressure profiling and advanced analytics!
This is an Android application built with:
- Kotlin — primary programming language
- Android Gradle Plugin — build system
- Hilt — dependency injection
- Room Database — local data storage
- Detekt — static code analysis
- Android Studio
- Android SDK
- Gradle
- Clone the repository:
git clone https://github.com/jodli/CoffeeShotTimer.git
cd CoffeeShotTimer-
Open the project in Android Studio.
-
Build the project:
./gradlew build- Run on a device or emulator:
./gradlew installDevDebugThe project uses Detekt for static code analysis to maintain code quality:
# Run detekt analysis with Java 21
JAVA_HOME=/usr/lib/jvm/java-21-openjdk ./gradlew detekt
# Or with default Java (requires Java 21+)
./gradlew detektDetekt generates multiple report formats:
- HTML Report:
app/build/reports/detekt/detekt.html- Human-readable report for local development - XML Report:
app/build/reports/detekt/detekt.xml- For CI/CD integration - SARIF Report:
app/build/reports/detekt/detekt.sarif- GitHub Security integration
The project uses a baseline file to track existing issues and prevent regressions:
# Update the baseline (suppresses existing issues)
./gradlew detektBaselineNote: Only regenerate the baseline when necessary, as it suppresses existing issues. New code should meet quality standards without baseline suppression.
The project includes configuration for release builds. A pre-built release is available in app/release/app-release.aab.
app/src/main/ # Main application source code
app/src/test/ # Unit tests
app/src/androidTest/ # Instrumentation tests
docs/ # Documentation and screenshots
gradle/ # Gradle configuration
This project uses an automated CI/CD pipeline with three deployment tracks and integrated code quality checks:
Every pull request and push triggers:
- Build & Test: Compilation and unit tests
- Android Lint: Built-in Android code analysis
- Detekt Analysis: Kotlin static code analysis with SARIF upload to GitHub Security
Code quality reports are available as:
- GitHub Actions artifacts (HTML reports)
- GitHub Security tab (vulnerabilities and code quality issues)
- PR checks (blocking on failure)
| Trigger | Track | Audience | Purpose |
|---|---|---|---|
| Manual dispatch (any branch) | Internal | Development team | Test risky changes |
Push to main (app changes) |
Beta (Open Testing) | Public beta users | Public testing |
Version tag (v*) |
Production | All users | Live releases |
Contributions are welcome! Please follow the development workflow above. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the terms found in the LICENSE file.
Coffee Shot Timer transforms espresso making from guesswork into precise craftsmanship—without any stress. The app supports you in achieving consistent espresso quality and developing your personal taste preferences through a structured, data-driven approach.
Made with ☕ for the home barista community








