Project Title: Task Manager
Project Description:
Create a simple command-line task management system that allows users to manage their tasks. This project will touch on numerals, operators, classes, switch statements, loops (for, while, do-while), arrays, hashCode, toString methods, stacks, lists, interfaces, JAR bundling, and GitHub integration.
Project Structure:
Main Class: TaskManagementSystem.java - This class will contain the main method and handle the application's flow.
Task Class: Task.java - This class will represent a task with attributes like title, description, priority, and status. Tasks will implement an interface called Taskable to define methods for task management.
TaskList Class: TaskList.java - This class will manage the task list, including adding, viewing, updating, and deleting tasks.
User Interface Class: UserInterface.java - This class will handle displaying options, receiving user input, and managing the application's user interface.
GitHub Repository: Create a GitHub repository to host your project and facilitate group collaboration.
Functionality:
Allow users to add tasks with details like title, description, priority, and status (e.g., to-do, in progress, completed).
Display a list of tasks with their details.
Implement features to edit task details and change task status.
Allow users to delete tasks from the list.
Implement basic input validation for user entries.
Utilize interfaces (Taskable) to define methods for task management.
Implement toString method for task objects.
Bundle the project into a JAR file for distribution.
GitHub Integration:
Initialize a Git repository in your project directory using git init.
Create a .gitignore file to exclude build artifacts and sensitive information from version control.
Commit your code changes using git commit.
Create a GitHub repository and link it to your local repository.
Push your code to the GitHub repository using git push.
[You like challenge?] You can enhance the project by adding features like due dates, sorting tasks, or exporting/importing data to/from files for more complexity and usefulness.