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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA4MDEyOTEsIm5iZiI6MTcyMDgwMDk5MSwicGF0aCI6Ii84MTk1MTIzOS8zMzU2OTc0MzEtMzEyNGQyNDAtYTE2NS00NThhLTkyMGQtMDUwY2M1ZmQyZDYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDE2MTYzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjOWY1ZWRiMjYyMThjMjNhNmQ4OWMyZDYzY2NiMWRmM2U3ODM1ZjU3ODkyNTQ5N2QxYmFmNjVmNDUyMjc3ZTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jrCWVZIhiaPPm6z2_nW8CMXhQJ0a4TfZj7JGBZR8XPA)
![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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA4MDEyOTEsIm5iZiI6MTcyMDgwMDk5MSwicGF0aCI6Ii84MTk1MTIzOS8zMzU2OTc0NDgtOWFkNDJjOTItODY5ZS00MTUwLWIyYjEtZTk2YTZkMDkzYzVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDE2MTYzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ0Y2Y2YWExYTM0NDZkNTFhOWZmZmM3NmVmMjliOTBhNmI2YjAyOTA4OTAxZDc4YjBkOTllNWYyYjI4MGUwYjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Qb6vOCHh6EmDMgjXyv6tCgFyLbMEIf4_ZB3Q3X3SQFA)
- 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.