Smart CLI-based task manager that auto-categorizes your tasks using intelligent keyword-based logic. No paid API needed - completely free and runs locally!
- Add Tasks: Create new tasks with intelligent auto-categorization
- Smart Categories: Automatic categorization into Work, Personal, Urgent, or General
- View & Filter: View all tasks, filter by category, status, or search by keywords
- Task Management: Mark tasks as complete, delete tasks, clear completed tasks
- Persistent Storage: All data saved locally in JSON format
- Analytics: Task summary with completion rates and category breakdown
- Search: Find tasks quickly using keyword search
- Confidence Scoring: See how confident the AI is about categorization
- Deployment Ready: Can be hosted on subdomain (todo.saurabhh.in)
Tasks are automatically categorized based on keyword analysis:
Keywords: office, project, client, meeting, presentation, report, deadline, email, call, conference, proposal, budget, team, manager, work, job, business, professional, corporate, company, task, assignment, review, analysis, development, coding, programming, software, application, system, database, server
Keywords: birthday, family, shopping, grocery, home, house, personal, friend, vacation, holiday, doctor, appointment, health, exercise, gym, hobby, book, movie, restaurant, dinner, lunch, breakfast, party, celebration, gift, anniversary, wedding, travel, trip, visit, clean, organize, repair, maintenance, garden, pet, car, insurance, bank, finance
Keywords: urgent, asap, immediately, now, today, emergency, critical, important, priority, rush, quick, fast, soon, deadline, overdue, late, must, need, required, essential, crucial, vital, pressing, time-sensitive, hurry, instant, immediate
Default category for tasks that don't match any specific keywords.
- Java 17 or higher
- Maven 3.6 or higher
-
Clone the repository
git clone https://github.com/yourusername/AI-Powered-To-Do-Manager-in-Java.git cd AI-Powered-To-Do-Manager-in-Java -
Compile the project
mvn clean compile
-
Run the application web mode
1. java -cp target/classes Main 2. mvn -q -e exec:java -Dexec.mainClass=Main -Dexec.args=web
Or using Maven:
mvn exec:java -Dexec.mainClass="Main" -
Build JAR for deployment
mvn clean package java -jar target/ai-todo-manager.jar
ai-todo-manager/
βββ src/
β βββ Main.java # CLI interface and main application
β βββ Task.java # Task data model
β βββ TaskManager.java # Task operations and file I/O
β βββ AICategorizer.java # AI categorization logic
βββ tasks.json # Local task storage (auto-created)
βββ pom.xml # Maven configuration
βββ README.md # This file
βββ LICENSE # MIT License
βββ .gitignore # Git ignore rules
Enter task title: Submit client proposal by Friday
Task added successfully!
Title: Submit client proposal by Friday
Category: Work
Confidence: 85%
Good categorization! Consider adding more specific keywords for better accuracy.
ALL TASKS
==================================================
1. Submit client proposal [Work] - PENDING (Created: 2025-01-15 09:30:00)
2. Buy birthday gift for mom [Personal] - COMPLETED (Created: 2025-01-15 10:15:00) (Completed: 2025-01-15 18:30:00)
3. Urgent: Fix server issue ASAP [Urgent] - PENDING (Created: 2025-01-15 08:00:00)
mvn clean package
# Output: target/ai-todo-manager.jar# Upload to server
scp target/ai-todo-manager.jar root@your_server_ip:/home/deploy/
# SSH to server and run
ssh root@your_server_ip
cd /home/deploy/
java -jar ai-todo-manager.jarCreate /etc/apache2/sites-available/todo.saurabhh.in.conf:
<VirtualHost *:80>
ServerName todo.saurabhh.in
DocumentRoot /var/www/todo
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ErrorLog ${APACHE_LOG_DIR}/todo_error.log
CustomLog ${APACHE_LOG_DIR}/todo_access.log combined
</VirtualHost>sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite todo.saurabhh.in
sudo systemctl restart apache2Add A Record in your domain provider (Hostinger):
- Name:
todo - Type:
A - Value:
your_server_ip - TTL:
3600
[
{
"title": "Submit client proposal",
"category": "Work",
"completed": false,
"createdAt": "2025-01-15 09:30:00",
"completedAt": null
},
{
"title": "Buy birthday gift for mom",
"category": "Personal",
"completed": true,
"createdAt": "2025-01-15 10:15:00",
"completedAt": "2025-01-15 18:30:00"
}
]- Java 17+: Core programming language
- Maven: Dependency management and build tool
- Gson: JSON parsing and serialization
- CLI Interface: Interactive command-line interface
- Apache/Nginx: Web server for deployment
- JSON: Local data storage format
- Project setup and Maven configuration
- Core classes: Task, TaskManager, AICategorizer, Main
- Basic CRUD operations
- JSON file storage
- CLI interface
- Enhanced UI/UX with better formatting
- Advanced search and filtering
- Task priority levels
- Due date functionality
- Web interface (Spring Boot)
- REST API endpoints
- Task statistics and analytics
- Export/Import functionality
- Deployment optimization
- Performance improvements
- Documentation completion
- Testing and bug fixes
- 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.
Saurabh
- Portfolio: saurabhh.in
- Email: [email protected]
- Thanks to the Java community for excellent documentation
- Gson library for seamless JSON handling
- Maven for simplified dependency management
- All contributors and users of this project
β Star this repository if you find it helpful! β A smart Java-based task manager that uses OpenAI GPT to auto-categorize your tasks (Work, Personal, Urgent). Saves all data locally in JSON. CLI-based, deployable on custom subdomain.
