AdaTask is a console-based task manager for work, study, or personal tasks. It allows users to create, edit, and remove tasks, or view all listed tasks in a specific category. This project was developed by me as a final module assignment for the <dev>ª course, by Ada Tech in partnership with B3, and is still under development for further improvements.
For this project, the IntelliJ IDE was used, along with the following languages and technologies:
- Java 17.0.9;
- Maven 3.9.4;
- Ensure that you have a Windows, Linux, or macOS machine;
- Ensure that you have read the project documentation.
- Generics
- Object Oriented Programming
- Interfaces
- enums
- Java
- ArrayList manipulation
- Java design patterns
The application is organized into packages, including:
controller
: Manages user interaction with the system through the console, processes user commands, and utilizes the Service layer for execution.Domain
: Defines the structure and business rules for tasks, and contains the entities of the project.Repository
: Responsible for the 'persistence' of data in lists, this component offers methods for adding, removing, updating, and searching tasks. It is important to note that the database is simulated using an ArrayList.Service
: Contains the application logic, including task handling operations, and interacts with the Repository layer to perform data operations.
-
Application Initialization: the Main class serves as the point of interaction between the user and the application. It presents a simple interface (mainMenu()), provided by the controller, allowing the user to choose the type of task they wish to manage: study, work, or personal.
-
Action Selection: after choosing the type of task to manage, the user is presented with a new interface that displays a menu of possible actions to select.
-
Possible actions:
3.1. Create Task: the user can create personal, work, or study tasks, based on the selection made in mainMenu(). Each type of task possesses its own specific attributes. For every task created, a UUID is generated, and the timestamps of creation and last modification are recorded in the createdAt and updatedAt fields, respectively."
3.2. Edit Task: the user can edit and update the selected task by locating it using its UUID.
3.3. Delete Task: the user can delete the desired task by locating it using its UUID. 3.4. View Existing Tasks: the user can view registered tasks from a specific category, as chosen in mainMenu(). This functionality allows viewing all the data associated with each registered task. -
Data Persistence: data simulation of a database is achieved using in-memory lists (ArrayList).
- Ensure that you satisfy all prerequisites before proceeding.
- Clone the repository onto your machine:
git clone <repo_path>
- Open the project in an IDE (e.g., Eclipse, IntelliJ, VSCode).
- Navigate to the
Main
class and run it - The application should now be started. Follow the on-screen instructions to interact with AdaTask.
AdaTask is currently in its first version. Looking ahead, several new features and improvements are planned, including:
- Implementation of unique fields to ensure data consistency.
- Implementation of functionality to choose a single field for editing in a task.
- Migration from Java to a suitable framework, such as Spring, to enhance scalability and maintainability.
- Database integration.
- Test development.
Hi, I'm Ana Clara Barbeta, a Full Stack Developer based in São Paulo - SP, Brazil! I'm currently enrolled in the <dev>ª course offered by Ada Tech in partnership with B3. If you wish to get in touch, please view my LinkedIn profile or send an email to [email protected].