Welcome to the Task Management Application! This simple yet powerful Java application helps you manage your daily tasks efficiently.
Before you begin, ensure you have the following installed on your system:
- Java Development Kit (JDK) 23 or later
- Maven 3.6 or later
- Your favorite IDE (IntelliJ IDEA recommended)
git clone [repository-url]
cd 09-task-appThe project uses Maven for dependency management. To build the project, run:
mvn clean installThis will download all necessary dependencies (including Google's Gson library) and compile the project.
You can run the application directly from your IDE or using Maven:
mvn exec:java -Dexec.mainClass="dev.devtalles.proyecto.Main"This task management application allows you to:
- Create new tasks
- List all tasks
- Mark tasks as completed
- Delete tasks
- Save tasks to a JSON file for persistence
The project follows a simple structure:
src/main/java/- Contains all Java source filestasks.json- Stores your tasks (created automatically when you add tasks)
The project uses:
- Java 23
- Maven for project management
- Gson 2.13.0 for JSON handling
This application implements the Model-View-Controller (MVC) architectural pattern, which helps organize the code into three distinct components:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Model │ │ Controller │ │ View │
│ │ │ │ │ │
│ - Task.java │◄───►│ - TaskManager │◄───►│ - Console UI │
│ - tasks.json │ │ .java │ │ Interface │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Represents the data and business logic
- Includes the
Taskclass that defines the task structure - Handles persistent storage in
tasks.json
- Manages the console user interface
- Displays tasks and messages to the user
- Receives user input
- Acts as an intermediary between Model and View
- Processes user commands
- Implements business logic for task management
- User interacts with the View (CLI)
- View sends actions to the Controller
- Controller processes logic and updates the Model
- Model notifies changes
- View updates to show results
This pattern allows us to:
- Clearly separate responsibilities
- Facilitate code maintenance
- Make modifications in one layer without affecting others
- Improve code reusability
Feel free to fork this project and submit pull requests with improvements!
If you encounter any issues or have questions, please:
- Check if your Java version matches the required version (23)
- Ensure all dependencies are properly installed
- Verify that you have proper read/write permissions in the project directory
This project is open source and available under the MIT License.
Happy Task Managing! 🎉