Hi Friends,
I've received the following task from ChatGPT.
Project Challenge: Task Tracker Pro
This challenge encourages you to apply advanced Harbour skills such as:
* Multi-level data structures (categories and tasks)
* Enhanced GUI components (tabs, filters, calendars)
* Persistence using DBF or optional JSON/INI
* Encapsulation with object-oriented design
* Optional: integrate notifications or export formats
---
🔧 Project Overview
Name: Task Tracker Pro
Goal: Create a personal task manager that lets users organize, view, and manage tasks under customizable categories.
---
✅ Requirements
Core Features
* Add, edit, delete tasks
* Assign tasks to a category
* Mark tasks as done/incomplete
* Set due dates with a calendar control
* Store data in tasks.dbf and categories.dbf
GUI Requirements (Using HMG or HBQt)
* Tabs or dropdown for selecting category
* Grid to display tasks for selected category
* Buttons for Add Task, Edit Task, Mark Complete, Delete
* Optional: checkbox for “Show Completed”
Data Fields
Categories (categories.dbf):
| Field | Type | Description |
| ----- | ---- | ------------- |
| ID | N | Category ID |
| Name | C | Category name |
Tasks (tasks.dbf):
| Field | Type | Description |
| ------- | ---- | ------------------------- |
| ID | N | Task ID |
| Title | C | Task title |
| DueDate | D | Due date |
| Done | L | .T. if completed |
| CatID | N | Foreign key to categories |
---
🧠 Implementation Hints
* Use OOP to model Task and Category objects.
* Encapsulate data access in a TaskManager class.
* Use calendar/date picker control in GUI.
* Use color or icons in the task grid to indicate completed tasks.
* Use LOCATE, FILTER, or DBSEEK for filtering and sorting.
---
🔄 Optional Enhancements
* Export task list to CSV or JSON
* Add recurring task support
* Desktop notification on overdue tasks
* Drag-and-drop task sorting (advanced, for HBQt)
* Dark mode toggle via GUI theme
---
📁 Suggested Folder Structure
TaskTrackerPro/
├── src/
│ ├── main.prg
│ ├── task.prg
│ ├── category.prg
│ └── taskmanager.prg
├── data/
│ ├── tasks.dbf
│ └── categories.dbf
├── docs/
│ └── README.md
├── build.bat
├── TaskTrackerPro.hbp
---
📦 Deployment Goals
* Create an installer or portable zip
* Support first-time launch: create DBFs and default categories
* Handle missing data files gracefully with prompts
* Maintain platform portability (build for Windows and optionally Linux/macOS)
---
🏁 Project Challenge Summary
| Focus Area | Technique to Apply |
| --------------- | --------------------------------- |
| Data modeling | Object-Oriented Programming |
| UI Design | HMG/HBQt controls and layout |
| Storage | DBF files with indexing/filtering |
| User Experience | Interactive controls, validation |
| Packaging | Deployment-ready application |
---
🏆 Challenge Objective
> Deliver a fully working “Task Tracker Pro” desktop application using Harbour with a clean, tabbed or categorized interface, persistent data, and all major CRUD operations. Make it something you or a client could actually use.
---
📚 Suggested Skills Review Before Starting
* Arrays and DBFs
* OOP and methods (CLASS, DATA, METHOD)
* GUI controls: GRID, BUTTON, TEXTBOX, DATEPICKER
* Error handling (BEGIN SEQUENCE, __BreakBlock)
* File checking: IF !File("...")
---
You can see the appearance of my application in the images below:
My question:
Will this app be interesting for beginners?
Your feedback is welcome.
Regards,
Grigory