A modern, feature-rich task management desktop application built with Qt/C++. Manage your tasks, organize your schedule, and stay on top of your productivity with an intuitive and visually appealing interface.
- Quick overview of your most important tasks
- Visual task list with priority indicators
- Immediate access to add new tasks
- Empty state messaging for better UX
-
Create Tasks with detailed information:
- Title and description
- Priority levels (High, Medium, Low)
- Project/Category assignment
- Start and end dates
- Due times with custom scheduling
-
Filter & Search:
- View all tasks
- Filter by overdue tasks
- Filter by high-priority tasks
- Real-time search functionality
- Interactive calendar navigation (previous/next month)
- Mini calendar sidebar for quick date selection
- Timeline view for visualizing task schedule
- Day-based task filtering
- Clean, contemporary design with rounded elements
- Custom fonts (Inter, Manrope, Patrick Hand, Pecita)
- Smooth navigation between Home, Tasks, and Calendar views
- Dark and light theme support
- Responsive layout with scroll areas
- Project/Category-based task grouping
- Priority-based task management
- Visual indicators for task status
| Component | Technology |
|---|---|
| Language | C++ (C++17 standard) |
| GUI Framework | Qt 5/6 |
| Build System | CMake 3.16+ |
| UI Design | Qt Designer (.ui files) |
| Platform | Cross-platform (Windows, macOS, Linux) |
LearnFlow_cpp/
βββ main.cpp # Application entry point
βββ mainwindow.h / mainwindow.cpp # Main application window
βββ mainwindow.ui # Main UI design
βββ addtaskdialog.h / addtaskdialog.cpp # Task creation dialog
βββ tasks.ui # Tasks view UI
βββ LightLearnFlow.ui # Alternative light theme UI
βββ CMakeLists.txt # Build configuration
βββ resources.qrc # Resource file (fonts, images, icons)
βββ Patrick_Hand/ # Font resources
βββ Roboto_Flex/ # Font resources
βββ build/ # Build output directory
βββ BackgroundPattern.png # Background imagery
βββ profileImage.png # User profile image
βββ calendar.png, tasks.png, home.png # Navigation icons
βββ Inter-VariableFont_*.ttf # Typography
βββ Manrope-VariableFont_wght.ttf # Typography
βββ Pecita.otf # Typography
Entry point that initializes the Qt application and displays the main window.
Core application logic:
- Navigation between Home, Tasks, and Calendar views
- Task list rendering and management
- Calendar/timeline visualization
- Filter and search functionality
- Signal/slot connections for UI interactions
Dialog window for creating new tasks:
- Form inputs for task details (title, description)
- Date and time selection
- Priority and category dropdowns
- Task creation signals
XML-based UI layouts designed in Qt Designer:
mainwindow.ui: Main application window layouttasks.ui: Tasks view layoutLightLearnFlow.ui: Light theme variant
- Qt 5.15+ or Qt 6+
- CMake 3.16+
- C++ compiler supporting C++17 (GCC, Clang, MSVC)
-
Clone the repository
git clone https://github.com/AHMEDxHAGAG/LearnFlow_cpp.git cd LearnFlow_cpp -
Install Qt
- Download from qt.io
- Or install via package manager:
# Ubuntu/Debian sudo apt install qt5-qmake qtbase5-dev qttools5-dev # macOS (Homebrew) brew install qt # Windows (vcpkg) vcpkg install qt5:x64-windows
-
Build the project
mkdir build && cd build cmake .. cmake --build .
-
Run the application
# Linux/macOS ./LearnFlow # Windows LearnFlow.exe
- Click the FAB (Floating Action Button) or "Add Schedule" button
- Fill in task details:
- Title (required)
- Description (optional)
- Priority (High/Medium/Low)
- Project/Category
- Start Date and End Date
- Due Time and End Time
- Click Create to add the task
- Home: Overview dashboard with main tasks
- Tasks: Comprehensive task list with filters
- Calendar: Timeline and calendar-based view
- All: Show all tasks
- Overdue: Show only overdue tasks
- High Priority: Show only high-priority tasks
- Use the search bar to filter tasks in real-time
- Search by task title and description
- Use Previous/Next buttons to navigate months
- Click on dates in the mini calendar for quick navigation
- View timeline for selected date
- MVC (Model-View-Controller): Separation of UI and logic
- Observer Pattern: Qt's signal/slot mechanism
- Builder Pattern: UI component construction
| Class | Purpose |
|---|---|
MainWindow |
Central application controller and main UI |
AddTaskDialog |
Modal dialog for task creation |
| Task Management | Internal task list and filtering logic |
| Calendar Manager | Calendar view rendering and navigation |
The application includes theme support through UI files:
mainwindow.ui- Default themeLightLearnFlow.ui- Light theme variant
Custom fonts are embedded and can be modified:
- Display: Patrick Hand, Pecita
- Body: Inter, Manrope, Roboto Flex
Modify stylesheets in source files or .ui files using Qt Designer.
This project is licensed under the SIL Open Font License 1.1 (OFL.txt) - primarily for the included font files.
For project code, please refer to the repository's licensing information.
AHMEDxHAGAG
- GitHub: @AHMEDxHAGAG
- Project: LearnFlow_cpp
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to your branch
- Open a Pull Request
Found a bug or have a feature request? Please open an issue on GitHub.
- Language: C++ (98.7%)
- Repository Size: ~25 MB
- Created: March 6, 2026
- Last Updated: May 29, 2026