Coder Social home page Coder Social logo

adatask's Introduction

AdaTask

Introduction

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.

💻 Prerequisites and Technologies Used in the Project

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.

📚 Concepts learned

  • Generics
  • Object Oriented Programming
    • Interfaces
    • enums
  • Java
  • ArrayList manipulation
  • Java design patterns

⚙️ Application Structure

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 flow

  1. 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.

  2. 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.

  3. 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.

  4. Data Persistence: data simulation of a database is achieved using in-memory lists (ArrayList).

▶️ Getting Started

  1. Ensure that you satisfy all prerequisites before proceeding.
  2. Clone the repository onto your machine:
       git clone <repo_path>
    
  3. Open the project in an IDE (e.g., Eclipse, IntelliJ, VSCode).
  4. Navigate to the Main class and run it
  5. The application should now be started. Follow the on-screen instructions to interact with AdaTask.

🚩 Future Improvements

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.

📈 [WIP] Class Diagram

First version of class diagram

🙋🏻‍♀️ The Author

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].

adatask's People

Contributors

acbarbeta avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.