ScalaTaskManager is a powerful and flexible task management application built with Scala. It allows users to create, manage, and prioritize tasks seamlessly, featuring both simple and recurring tasks.
- Task Management:
- Add, remove, and complete tasks.
- Support for both simple and recurring tasks.
- Prioritization:
- Assign priority levels to tasks.
- Sort tasks by priority.
- Due Dates:
- Set and manage due dates for tasks.
- Automatically calculate next due date for recurring tasks.
- Filtering:
- Filter tasks by completion status.
- Scala: The application is written in Scala.
- Standard Library: Utilizes Scala's standard library for collections and I/O operations.
![Screenshot 2024-05-31 at 1 43 23 PM](https://private-user-images.githubusercontent.com/81951239/335697431-3124d240-a165-458a-920d-050cc5fd2d62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzYxNDUsIm5iZiI6MTczOTEzNTg0NSwicGF0aCI6Ii84MTk1MTIzOS8zMzU2OTc0MzEtMzEyNGQyNDAtYTE2NS00NThhLTkyMGQtMDUwY2M1ZmQyZDYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIxMTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEzMTU1Njg2YzMyODcwNmU0NDU3OGMxOWYyN2EyZjc3OTZjZWUyZjhlM2MzMDQ2ZjhiMmU5NGY5NWQ4Mjg3OTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.3XUppHYxSw8DWgoBrJ7CVfpRxQEpHwsQTF-sgQKQC0k)
![Screenshot 2024-05-31 at 1 43 46 PM](https://private-user-images.githubusercontent.com/81951239/335697448-9ad42c92-869e-4150-b2b1-e96a6d093c5e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzYxNDUsIm5iZiI6MTczOTEzNTg0NSwicGF0aCI6Ii84MTk1MTIzOS8zMzU2OTc0NDgtOWFkNDJjOTItODY5ZS00MTUwLWIyYjEtZTk2YTZkMDkzYzVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIxMTcyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzMTE2MmU3ZTA4OTUwMDZmZmQ1OTdlNjhlNjM0MjEzY2QxOWVhNDNkYTg1YzhmZjJmZTdiOWYwNmNhM2QxNDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qPXxjExh-CG2YEsYnPmWfLXnbuveXGmORB34BwZwMg4)
- Add Task: Allows users to add simple or recurring tasks with optional due dates.
- Remove Task: Enables users to remove tasks by index.
- Complete Task: Marks tasks as completed and calculates the next due date for recurring tasks.
- View Tasks: Displays all tasks with their details and statuses.
- Sort Tasks: Sorts tasks based on their priority levels.
- Filter Tasks: Filters tasks based on their completion status.
The project consists of the following main files:
main.scala
: Contains the implementation of the task management logic and the user interface for interacting with tasks.build.sbt
: Defines the project's dependencies and build settings.
To get started with this project:
- Clone the repository.
- Navigate to the project directory.
- Compile the project using
sbt compile
. - Run the application with
sbt run
.
This project serves as a practical example of implementing a task management system in Scala. It demonstrates various concepts such as trait-based design, case classes, and functional programming principles in a real-world scenario.
Contributions to this project are welcome. Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE file for details.