The Project Management Console Application is a Java-based tool designed to simplify the management of projects, tasks, users, and teams within an organization. Built to run in a console environment, this application provides a straightforward interface for administrative and user-specific interactions, making it suitable for educational purposes or as a base for more complex project management solutions.
- Java: The application is written entirely in Java, emphasizing the language's object-oriented features for managing entities like projects and tasks.
- SQLite: Uses SQLite for database management, allowing for lightweight data handling and persistence without needing a server-based solution.
- Gradle: Utilizes Gradle for efficient project management and builds automation, enhancing the project's modularity and scalability.
- Launch4j: Enables packaging the Java application into a Windows executable with configuration for JVM parameters and application settings. This facilitates easy distribution and deployment of the console application on Windows systems, ensuring that end-users can start the application without needing to manually configure Java settings.
The application is divided into various functionalities, each designed to address different aspects of project management:
- Project Management: Admins can create, view, update, and delete projects. Each project can be associated with multiple tasks, users, and teams.
- Task Management: Tasks can be added to projects, with details such as task assignments to users. Admins can manage these tasks through creation, viewing, updating, and deletion.
- User Management: User profiles can be managed where admins have the ability to add, update, and remove users, as well as assign or unassign projects to them.
- Team Management: Similar to user management, teams can be created, modified, or deleted. Projects can be assigned to teams, fostering collaboration among group members.
- Database Interaction: Utilizes a robust database helper to interact with SQLite, ensuring all data is consistently stored and retrieved, reflecting changes in real-time.
- Admin:
- Login with a password (
admin
). - Manage projects, tasks, users, and teams.
- Login with a password (
- User:
- Login using a user ID.
- View assigned projects, tasks, and teams.
- Create, view, update, and delete projects.
- Assign and unassign projects to users.
- View project details including tasks, assigned users, and teams.
- Add, view, update, and delete tasks.
- Assign tasks to users.
- Add, view, update, and remove users.
- Assign and unassign projects to users.
- View user details.
- Create, view, update, and delete teams.
- Add and remove users from teams.
- Assign projects to teams.
- View My Projects: Displays all projects assigned to the user.
- View My Tasks: Displays tasks assigned to the user.
- View My Teams: Displays teams the user belongs to.
To ensure code quality, the application is equipped with unit tests that cover key parts of the business logic. These tests are implemented using JUnit and Mockito frameworks.
- Displaying projects, tasks, and teams assigned to a user.
- Mocking service responses and verifying interactions.