A sleek, dark-themed desktop application for bass fishing enthusiasts to log catches, track patterns, and analyze fishing data.
- π Date and time of catch
- βοΈ Bass weight (lbs) and length (inches)
- π Location (custom, saved for reuse)
- π€οΈ Weather conditions and temperature
- πͺ± Bait/lure used (custom, saved for reuse)
- π Personal notes
- π Sortable data table with all catches
- π Filter by date range, location, or bait
- βοΈ Edit or delete entries
- π€ Export to CSV for external analysis
- Summary Stats: Total catches, weights, averages, personal bests π
- Bait Analysis: Which baits catch the most/biggest fish πͺ±
- Time Patterns: Best times of day to fish β°
- Weather Insights: Catch rates by weather conditions π¦οΈ
- Location Comparison: Performance across fishing spots πΊοΈ
- π Dark theme with green accents
- β¨ Animated background with floating particles
- π― Custom-styled components (buttons, dropdowns, scrollbars)
- π± Responsive layout
- β Java 17 or later
- π¦ Maven 3.6+ (for building from source)
# Build
scripts\build.bat
# Run
scripts\run.bat# Make scripts executable (first time only)
chmod +x scripts/*.sh
# Build
./scripts/build.sh
# Run
./scripts/run.sh# Build the application
mvn clean package
# Run the application
java --enable-native-access=ALL-UNNAMED -jar target/LakeLogger.jarLakeLogger/
βββ src/main/java/com/lakelogger/
β βββ LakeLoggerApp.java # Application entry point
β βββ model/ # Data models
β β βββ CatchEntry.java # Catch record
β β βββ Location.java # Fishing location
β β βββ Bait.java # Bait/lure type
β βββ dao/ # Database layer
β β βββ DatabaseManager.java # SQLite connection
β β βββ CatchDAO.java # CRUD operations
β βββ service/ # Business logic
β β βββ AnalyticsService.java # Statistics calculations
β βββ ui/ # User interface
β β βββ MainFrame.java # Main window
β β βββ theme/
β β β βββ DarkTheme.java # UI styling
β β βββ panels/
β β βββ LogCatchPanel.java # Log new catch
β β βββ ViewCatchesPanel.java # View/manage catches
β β βββ StatsPanel.java # Analytics dashboard
β βββ util/
β βββ DateTimeUtil.java # Date/time helpers
βββ res/
β βββ images/ # App icons and graphics
βββ scripts/
β βββ build.bat # Windows build script
β βββ build.sh # Unix build script
β βββ run.bat # Windows run script
β βββ run.sh # Unix run script
βββ pom.xml # Maven configuration
βββ README.md
Lake Logger uses SQLite for local data storage. The database file is created automatically at:
| Platform | Location |
|---|---|
| πͺ Windows | %USERPROFILE%\.lakelogger\lakelogger.db |
| π macOS | ~/.lakelogger/lakelogger.db |
| π§ Linux | ~/.lakelogger/lakelogger.db |
To backup your data, simply copy the lakelogger.db file to a safe location.
| Color | Hex | Usage |
|---|---|---|
| π€ Background | #0f1214 |
Main background |
| π Card | #1e2428 |
Panel backgrounds |
| π² Primary | #1b4d3e |
Forest green accents |
| π Success | #10b981 |
Emerald green highlights |
| π Info | #06b6d4 |
Cyan/water blue |
| πΆ Warning | #f59e0b |
Amber accents |
| β Danger | #ef4444 |
Red for delete/errors |
| π Text | #f0f4f8 |
Primary text |
| Library | Version | Purpose |
|---|---|---|
| SQLite JDBC | 3.42.0 | Database driver |
| JCalendar | 1.4 | Date picker component |
| JFreeChart | 1.5.4 | Analytics charts |
Install Maven from maven.apache.org and add it to your PATH.
Install Java 17+ from adoptium.net and add it to your PATH.
These are harmless warnings from the SQLite driver. The run scripts include --enable-native-access=ALL-UNNAMED to suppress them.
If you need to reset the app, delete the .lakelogger folder in your home directory.
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/amazing-feature) - πΎ Commit your changes (
git commit -m 'Add amazing feature') - π€ Push to the branch (
git push origin feature/amazing-feature) - π Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- β Built with Java Swing
- π¨ Icons and graphics designed for outdoor/fishing aesthetic
- π Inspired by the need to track bass fishing patterns
Happy Fishing! π£ππ


