Skip to content

A simple Command-Line Interface (CLI) To-Do app built with Node.js. It allows users to easily add, list, complete, and delete tasks using terminal commands. Designed for productivity enthusiasts who prefer managing their tasks without leaving the command line. πŸš€

Notifications You must be signed in to change notification settings

Sherifdeji/cli-todoApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ Todo CLI Application

A beautiful command-line task management application built with Node.js, with file-based storage (JSON) and stunning visual interface that helps users organize and track their tasks efficiently.

Todo App Demo Node.js License

✨ Features

  • 🎨 Beautiful CLI Interface - Colorful, boxed menus and messages using chalk and boxen
  • βœ… Complete Task Management - Add, complete, remove, and view tasks
  • πŸ“… Smart Date Handling - Displays "Today", "Tomorrow", "Overdue" with color coding
  • πŸ›‘οΈ Comprehensive Validation - Input validation with user-friendly error messages
  • πŸ’Ύ File-Based Storage - Persistent JSON storage with error recovery
  • πŸ”„ Confirmation Dialogs - Prevents accidental deletions
  • πŸ—οΈ Modular Architecture - Clean, object-oriented design
  • 🎯 User-Friendly - Intuitive interface with clear feedback

πŸ“¦ Installation

  1. Clone the repository

    git clone https://github.com/Sherifdeji/cli-todoApp.git
    cd todo-cli-app
  2. Install dependencies

    npm install
  3. Run the application

    npm start

πŸš€ Usage

Main Menu

πŸ“‹ TODO APP MENU

1. Add a new task
2. Mark a task as Completed
3. Remove a task
4. View all tasks
5. Exit Application

Adding Tasks

  • Enter a descriptive task name
  • Provide due date in YYYY-MM-DD format
  • Past dates are automatically rejected

Managing Tasks

  • Complete Tasks: Choose from pending tasks list
  • Remove Tasks: Select from all tasks with confirmation
  • View Tasks: See pending and completed tasks separately

πŸ—οΈ Project Structure

πŸ“ cli-todoApp/
β”œβ”€β”€ πŸ“ legacy/
β”‚   └── πŸ“„ todoApp.js     # Original monolithic implementation
β”œβ”€β”€ πŸ“src/
β”‚   β”œβ”€β”€ πŸ“„task.js         # Task model definition
β”‚   β”œβ”€β”€ πŸ“„todo.js         # Main application logic(entry point)
β”‚   └── πŸ“„todomanager.js  # Task management operations
β”œβ”€β”€ πŸ“utils/
β”‚   └── πŸ“„validation.js   # Input validation utilities
β”œβ”€β”€ πŸ“„package.json        # Project configuration
β”œβ”€β”€ πŸ“„ .gitignore
└── πŸ“„README.md          # Project documentation

πŸ› οΈ Technologies Used

  • Node.js - Runtime environment
  • Readline - CLI input handling
  • Chalk - Terminal colors and styling
  • Boxen - Terminal boxes and borders
  • File System (fs) - JSON data persistence

πŸ”§ Available Scripts

npm start        # Run the main application
npm run legacy   # Run the original version
npm test         # Run tests (placeholder)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

MIT License. Feel free to use and modify for your own projects.


Built with ❀️ by Sherif Ibrahim

About

A simple Command-Line Interface (CLI) To-Do app built with Node.js. It allows users to easily add, list, complete, and delete tasks using terminal commands. Designed for productivity enthusiasts who prefer managing their tasks without leaving the command line. πŸš€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published