IntelliCoach is a comprehensive time tracking and productivity management system designed to help users efficiently monitor their daily activities. The application provides real-time activity tracking using Start/Stop functionality, detailed analytics, comprehensive reporting, and personalized productivity recommendations.
The system supports six predefined activity categories that are mandatory for comprehensive time tracking:
- Academic - Study sessions, homework, classes, and educational activities
- Sport - Physical exercise, fitness activities, and sports participation
- Entertainment - Leisure activities, games, social media, and recreational time
- Extra Activity - Clubs, volunteering, hobbies, and personal projects
- Sleep - Essential rest periods (mandatory for productivity analysis)
- Health / Hygiene - Personal care, meals, and health-related activities
| Activity Category | Recommended Duration |
|---|---|
| Academic | 6 – 8 hours |
| Sleep | 7 – 9 hours |
| Sport | 1 – 2 hours |
| Entertainment | 1 – 2 hours |
| Extra Activity | 1 – 2 hours |
| Health / Hygiene | 30 – 60 minutes |
These recommendations serve as benchmarks for analytics comparison, productivity scoring, and recommendation generation.
- Single Active Session: Only one activity can be active at any given time
- Automatic Switching: Starting a new activity automatically stops the current one
- No Overlapping: The system prevents overlapping time entries
- Real-time Tracking: Live timer displays current session duration
- All activity sessions are automatically saved to SQLite database
- Session data includes user ID, activity type, start/end times, and calculated duration
- Data integrity is maintained through proper database constraints
Login Page → Dashboard → Feature Pages → Logout
↓
Registration Page (for new users)
- Dashboard: Central navigation hub
- Activity Tracking: Start/Stop functionality with live timer
- Analytics: Daily, weekly, and monthly time analysis
- Reports: Comprehensive report generation and export
- Recommendations: Personalized productivity suggestions
- Time distribution analysis across all activity categories
- Period-based summaries (daily, weekly, monthly)
- Actual vs. recommended time comparisons
- Productivity pattern identification
- Balance and imbalance detection
- Detailed activity reports with precise duration calculations
- Multiple export formats (CSV, TXT)
- Customizable date ranges
- Professional formatting for documentation purposes
- Activity name and category
- Session start and end timestamps
- Calculated duration
- Session date
- User identification
- Time allocation balance across categories
- Sleep adequacy assessment
- Entertainment time monitoring
- Academic focus evaluation
- Physical activity tracking
- Critical Alerts: For severe imbalances (e.g., insufficient sleep)
- Balance Suggestions: For time distribution optimization
- Activity Reminders: For missing essential activities
- Productivity Tips: For performance improvement
- Numerical score (0-100) based on time allocation efficiency
- Comparison against recommended guidelines
- Color-coded performance indicators
- Trend analysis over time
- user_id (Primary Key, Auto-increment)
- username (Unique, Not Null)
- email (Unique, Not Null)
- password (Encrypted)
- full_name
- created_at (Timestamp)
- session_id (Primary Key, Auto-increment)
- user_id (Foreign Key)
- activity_type (Constrained to 6 categories)
- start_time (Timestamp)
- end_time (Timestamp)
- duration_minutes (Calculated)
- session_date (Date)
- is_active (Boolean)
- created_at (Timestamp)
- activity_type (Primary Key)
- min_minutes (Integer)
- max_minutes (Integer)
- description (Text)
- recommendation_id (Primary Key, Auto-increment)
- user_id (Foreign Key)
- recommendation_text (Text)
- recommendation_type (Enum)
- priority (HIGH/MEDIUM/LOW)
- based_on_date (Date)
- created_at (Timestamp)
- is_read (Boolean)
- Pure JavaFX Implementation: No FXML files used
- Layout Managers: GridPane, VBox, BorderPane, HBox, FlowPane
- Event Handling: Lambda expressions and functional interfaces
- Real-time Updates: Timeline-based timer functionality
- Singleton Pattern: Database connections and service instances
- Data Access Object (DAO): Database interaction abstraction
- Model-View-Controller (MVC): Clear separation of concerns
- Observer Pattern: Real-time UI updates
- Lambda Expressions: Event handling and stream operations
- Inner Classes: Static, non-static, anonymous, and local implementations
- Functional Interfaces: Predicate, Consumer, Function, Supplier
- Stream API: Data processing and filtering
IntelliCoach/
├── src/java/com/
│ ├── IntelliCoachApp.java
│ ├── TestDatabase.java
│ ├── models/
│ │ ├── User.java
│ │ ├── ActivitySession.java
│ │ ├── ActivityType.java
│ │ └── Recommendation.java
│ ├── database/
│ │ ├── DBConnection.java
│ │ ├── UserDAO.java
│ │ └── ActivitySessionDAO.java
│ ├── services/
│ │ ├── AuthenticationService.java
│ │ ├── TimeTrackingService.java
│ │ ├── AnalyticsService.java
│ │ └── RecommendationService.java
│ ├── views/
│ │ ├── LoginView.java
│ │ ├── RegistrationView.java
│ │ ├── DashboardView.java
│ │ ├── ActivityTrackingView.java
│ │ ├── AnalyticsView.java
│ │ ├── ReportsView.java
│ │ └── RecommendationsView.java
│ └── interfaces/
│ ├── Repository.java
│ ├── Service.java
│ └── Trackable.java
├── database/
│ ├── schema.sql
│ └── intellicoach.db
├── lib/
│ ├── sqlite-jdbc-3.44.1.0.jar
│ ├── slf4j-api-2.0.9.jar
│ └── slf4j-simple-2.0.9.jar
├── build-and-run.bat
├── build-only.bat
└── README.md
- Java Development Kit (JDK) 11 or higher
- JavaFX SDK for GUI functionality
- SQLite JDBC Driver (included in lib directory)
- Download JavaFX SDK from https://openjfx.io/
- Extract to desired location
- Update module path in run commands
The project includes automated build scripts for Windows:
# Build only (compilation)
build-only.bat
# Build and run application
build-and-run.bat# Create build directory
mkdir build
# Compile Java sources
javac --module-path "path\to\javafx\lib" --add-modules javafx.controls -d build -cp "lib/*" -sourcepath src/java src/java/com/*.java src/java/com/*/*.java
# Run application
java --module-path "path\to\javafx\lib" --add-modules javafx.controls -cp "build;lib/*" com.IntelliCoachApp# Test database connectivity (console application)
java -cp "build;lib/*" com.TestDatabase- Launch the application
- Create a new user account via registration
- Login with your credentials
- Navigate to Activity Tracking page
- Select desired activity from dropdown menu
- Click START to begin tracking
- Monitor real-time timer display
- Click STOP when activity is complete
- Session data is automatically saved
- Access Analytics page from dashboard
- Select analysis period (daily, weekly, monthly)
- Choose specific date or date range
- Review time distribution charts and tables
- Compare actual vs. recommended time allocations
- Navigate to Reports page
- Configure report parameters
- Select export format (CSV or TXT)
- Generate and preview report
- Export for external use
- Access Recommendations page
- Select date for analysis
- Generate personalized recommendations
- Review productivity score and suggestions
- Implement recommended improvements
- Start/Stop functionality operates correctly
- Single active session enforcement
- Automatic activity switching
- No overlapping time entries
- Complete activity category coverage
- Accurate duration calculations
- Comprehensive analytics generation
- Reliable data export functionality
- Effective recommendation algorithms
- Secure user authentication
- Robust database operations
Database Connection Errors
- Verify SQLite JDBC driver is present in lib directory
- Check database file permissions
- Ensure no other instances are accessing the database
JavaFX Runtime Errors
- Confirm JavaFX SDK is properly installed
- Verify module path configuration
- Check Java version compatibility
Compilation Errors
- Validate Java JDK installation
- Confirm all dependencies are available
- Check source file organization
- Check system requirements compliance
- Verify all dependencies are installed
- Review configuration settings
- Consult troubleshooting section
- Examine application logs for detailed error information
This application is developed for educational and productivity enhancement purposes. It demonstrates professional software development practices including object-oriented design, database integration, user interface development, and comprehensive testing methodologies.
IntelliCoach Time Tracking System represents a complete solution for personal productivity management, combining modern Java development practices with practical time management functionality.
Clone the repository: git clone https://github.com/Maxd646/IntelliCoach.git
| Name | Id | Github |
|---|---|---|
| Daniel Gashaw | ETS0387/16 | https://github.com/Maxd646 (Team Leader) |
| Abrham Teramed | ETS0094/16 | https://github.com/Abrom-code |
| Addis Shiferaw | ETS0099/16 | https://github.com/Adda-19 |
| Liyuneh Rstey | ETS0841/15 | https://github.com/liyuneh |
| Amir Yimam | ETS0169/16 | https://github.com/miro129 |
IntelliCoach - Professional Time Tracking and Productivity Management