Skip to content

dawidolko/TaskApp-JavaFX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskApp-JavaFX

πŸš€ Comprehensive Task Management System for IT Companies - Build enterprise-grade project management applications with JavaFX, role-based access control, and advanced reporting

πŸ“‹ Description

Welcome to the TaskApp-JavaFX repository! This comprehensive task management system is designed specifically for IT companies, providing robust project management, task tracking, and reporting capabilities. Built with JavaFX and featuring a layered architecture, the system supports three distinct user roles (Administrator, Manager, User) with tailored interfaces and permissions for each role.

Developed as part of the Team Programming course, this project demonstrates best practices in desktop application development, database design, role-based access control, and team collaboration. The system features intuitive GUI design, comprehensive activity tracking, PDF report generation, and flexible team management capabilities.

πŸ“ Repository Structure


TaskApp-JavaFX/
β”œβ”€β”€ πŸ–₯️ CODE/ # Application source code
β”‚ β”œβ”€β”€ πŸ“ src/
β”‚ β”‚ β”œβ”€β”€ πŸ“ main/
β”‚ β”‚ β”‚ β”œβ”€β”€ β˜• java/ # Java source files
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ controllers/ # JavaFX controllers
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ models/ # Data models
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ services/ # Business logic
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ utils/ # Utility classes
β”‚ β”‚ β”‚ β”‚ └── MainApplication.java
β”‚ β”‚ β”‚ └── πŸ“ resources/
β”‚ β”‚ β”‚ β”œβ”€β”€ fxml/ # FXML layout files
β”‚ β”‚ β”‚ β”œβ”€β”€ css/ # Stylesheets
β”‚ β”‚ β”‚ └── images/ # Application images
β”‚ β”‚ └── πŸ“ test/ # Unit tests
β”‚ β”œβ”€β”€ πŸ“¦ pom.xml # Maven configuration
β”‚ └── πŸ“– README.md # Code documentation
β”œβ”€β”€ 🎨 GUI/IMG/ # GUI screenshots and mockups
β”‚ β”œβ”€β”€ πŸ” Login.png # Login interface
β”‚ β”œβ”€β”€ πŸ“ Registration.png # Registration screen
β”‚ β”œβ”€β”€ πŸ‘¨β€πŸ’Ό DashboardAdmin.png # Administrator dashboard
β”‚ β”œβ”€β”€ πŸ‘” ManagerDashboard.png # Manager dashboard
β”‚ β”œβ”€β”€ πŸ‘€ UserDashboard.png # User dashboard
β”‚ β”œβ”€β”€ πŸ“‹ AddingTasks.png # Task creation
β”‚ β”œβ”€β”€ ✏️ EditTask.png # Task editing
β”‚ β”œβ”€β”€ πŸ‘₯ AdminTeams.png # Team management
β”‚ β”œβ”€β”€ πŸ—οΈ AdminTeamCreation.png # Team creation
β”‚ β”œβ”€β”€ βš™οΈ AdminSettings.png # System settings
β”‚ └── πŸ“Š AdminReports.png # Reporting interface
β”œβ”€β”€ πŸ“‹ UML/ # UML diagrams
β”‚ β”œβ”€β”€ πŸ“Š UseCaseDiagram.png # Use case diagram
β”‚ β”œβ”€β”€ πŸ”„ ChartActivities1-7.png # Activity diagrams
β”‚ └── πŸ“ˆ SequenceDiagram3-6.png # Sequence diagrams
β”œβ”€β”€ πŸ—„οΈ SQL/ # Database scripts and ERD
β”‚ β”œβ”€β”€ πŸ“Š erd1.png # Entity Relationship Diagram 1
β”‚ β”œβ”€β”€ πŸ“Š erd2.png # Entity Relationship Diagram 2
β”‚ β”œβ”€β”€ πŸ”„ migration.sql # Database migrations
β”‚ └── 🌱 seeder.sql # Database seed data
β”œβ”€β”€ πŸ“Š DAILY/ # Daily progress reports
β”œβ”€β”€ πŸ“š DOC/ # Documentation and images
β”œβ”€β”€ πŸ”§ INSTALL/ # Installation files
β”œβ”€β”€ πŸ“– JAVA_DOCS/ # JavaDoc documentation
β”œβ”€β”€ πŸ“„ PDF/ # PDF documentation
β”œβ”€β”€ πŸ“Š SLIDES/ # Presentation slides
β”œβ”€β”€ πŸ“œ LICENSE # Project license
└── πŸ“ README.md # Project documentation

πŸš€ Getting Started

1. Clone the Repository

git clone https://github.com/dawidolko/TaskApp-JavaFX.git
cd TaskApp-JavaFX

2. Database Setup

# Navigate to SQL directory
cd SQL

# Create database and run migrations
mysql -u root -p < migration.sql

# Seed database with initial data
mysql -u root -p < seeder.sql

3. Build the Application

# Navigate to CODE directory
cd CODE

# Build with Maven
mvn clean install

4. Run the Application

Using Maven:

mvn javafx:run

Using IDE:

Run MainApplication class in your Java IDE (IntelliJ IDEA, Eclipse, NetBeans)

βš™οΈ System Requirements

Essential Tools:

  • Java Development Kit (JDK) 11 or higher
  • JavaFX SDK 11 or higher
  • Maven 3.6 or higher
  • MySQL 5.7 or higher
  • Git for version control

Development Environment:

  • IDE (IntelliJ IDEA, Eclipse, NetBeans)
  • Scene Builder for FXML editing (optional)
  • MySQL Workbench or similar database tool
  • Maven build automation

Recommended Tools:

  • JavaFX Scene Builder for visual FXML editing
  • MySQL Workbench for database management
  • Git GUI Client (GitKraken, SourceTree)
  • UML Diagramming Tool (StarUML, Visual Paradigm)

JavaFX Dependencies:

  • JavaFX Controls for UI components
  • JavaFX FXML for layout management
  • JavaFX Graphics for animations
  • JavaFX Web for embedded browser (optional)

✨ Key Features

πŸ” User & Role Management

  • Three distinct user roles: Administrator, Manager, User
  • Role-based access control (RBAC) system
  • Create, edit, and delete user accounts
  • Secure authentication and authorization
  • User profile management and preferences
  • Activity logging and audit trails

πŸ“‹ Task Management

  • Create, assign, and track tasks
  • Task priority levels and status tracking
  • Due date management and reminders
  • Task progress monitoring
  • Task categorization and tagging
  • Bulk task operations
  • Task dependencies and relationships

πŸ‘₯ Team Management

  • Create and manage development teams
  • Assign team members and leaders
  • Team performance analytics
  • Team workload distribution
  • Cross-team collaboration support
  • Team hierarchy and organization

πŸ“Š Advanced Reporting

  • Generate detailed PDF reports
  • Customizable report filters (status, priority, assignee, date range)
  • Task completion statistics
  • Team performance metrics
  • Project progress reports
  • Export data in multiple formats

βš™οΈ System Configuration

  • Customize system settings and preferences
  • Define custom task statuses
  • Configure priority levels
  • Set up notification rules
  • Manage system roles and permissions
  • Theme and appearance customization

πŸ—„οΈ Database Integration

  • Robust MySQL database backend
  • Data persistence for all entities
  • Transaction management
  • Database migration support
  • Automated backup capabilities
  • Query optimization

πŸ“ˆ Activity Tracking

  • Monitor user activities and actions
  • System logs with detailed timestamps
  • User session management
  • Error logging and debugging
  • Performance monitoring
  • Security audit trails

🎨 Modern User Interface

  • Intuitive JavaFX-based GUI
  • Smooth animations and transitions
  • Responsive layout design
  • Custom themes and styling
  • Accessibility features
  • Multi-window support

πŸ—οΈ Architecture

The project follows a layered architecture pattern:

Frontend Layer (JavaFX)

  • User interface components
  • FXML layouts and controllers
  • CSS styling and animations
  • Input validation and user feedback

Business Logic Layer (Java)

  • Service classes for core functionality
  • Business rules and validation
  • Data processing and transformation
  • Error handling and logging

Data Access Layer

  • Database connection management
  • SQL queries and stored procedures
  • ORM-like data mapping
  • Transaction handling

Database Layer (MySQL)

  • Data persistence and storage
  • Relational data model
  • Indexes and constraints
  • Backup and recovery

πŸ› οΈ Technologies Used

  • Java 11+ - Core programming language
  • JavaFX - Desktop UI framework
  • Maven - Build automation and dependency management
  • FXML - Declarative UI markup language
  • CSS - Stylesheet language for JavaFX
  • MySQL - Relational database management system
  • JDBC - Java Database Connectivity
  • JUnit - Unit testing framework
  • Log4j - Logging framework

πŸ–ΌοΈ Application Screenshots

Authentication & Registration

Login Screen Secure login interface with authentication

Registration Screen User registration with validation

Administrator Views

Admin Dashboard Complete system overview for administrators

Admin Teams Team management and monitoring

Admin Team Creation Intuitive team creation interface

Admin Edit Team Comprehensive team editing capabilities

Employee Management Employee administration panel

Adding Employee Employee addition with role assignment

Edit Employee Employee profile editing

Admin Settings System-wide configuration settings

Admin Logs Activity logs and system monitoring

Admin Reports Comprehensive reporting interface

Manager Views

Manager Dashboard Team and project management dashboard

Manager Employees Team member overview and management

Manager Settings Manager-specific configuration options

Settings Manager Detailed settings management

Manager Reports Team performance and task reports

User Views

User Dashboard Personal task dashboard for users

User Edit Data Profile editing and personal information

User Settings User preference and notification settings

Task Management

Adding Tasks Task creation with detailed fields

Edit Task Task modification and status updates

πŸ“Š System Design Documentation

Use Case Diagram

Use Case Diagram Complete system use cases and user interactions

Activity Diagrams

Activity Chart 1 User authentication and authorization flow

Activity Chart 2 Task creation and management processes

Activity Chart 3 Employee management workflow

Activity Chart 4 Report generation process

Activity Chart 5 Team management activities

Activity Chart 6 System configuration flow

Activity Chart 7 Administrative operations and oversight

Sequence Diagrams

Sequence Diagram 3 System component interaction sequences

Sequence Diagram 4 Database communication and data flow

Sequence Diagram 5 User role-based interaction patterns

Sequence Diagram 6 Task processing and update sequence

πŸ—„οΈ Database Design

Entity Relationship Diagrams

ERD 1 Main database structure and entity relationships

ERD 2 Detailed entity attributes and constraints

πŸ‘₯ Development Team

Team Roles and Responsibilities:

  • Dawid - Frontend Development (JavaFX UI, animations, user experience)
  • Piotr - Backend Development (business logic, service layer, database integration)
  • Łukasz - Database Design and Implementation (schema design, migrations, optimization)
  • Piotr - Database Support (query optimization, stored procedures, data integrity)

πŸ“š Documentation

Comprehensive project documentation available in multiple formats:

  • πŸ“Š SLIDES/ - Project presentations and overviews
  • πŸ“„ PDF/ - Detailed technical documentation
  • πŸ“– JAVA_DOCS/ - JavaDoc API documentation
  • πŸ“š DOC/ - Additional guides and references
  • πŸ“Š DAILY/ - Daily progress reports and updates

πŸ“Š Project Status

🚧 In Development - Active development as part of Team Programming coursework

Completed Features:

  • βœ… User authentication and role management
  • βœ… Task creation and tracking
  • βœ… Team management
  • βœ… Reporting system
  • βœ… Database integration
  • βœ… UI/UX design for all user roles

In Progress:

  • πŸ”„ Advanced analytics dashboard
  • πŸ”„ Real-time notifications
  • πŸ”„ Mobile companion app

🀝 Contributing

Contributions are highly welcomed! Here's how you can help:

  • πŸ› Report bugs - Found an issue? Let us know!
  • πŸ’‘ Suggest improvements - Have ideas for better features?
  • πŸ”§ Submit pull requests - Share your enhancements and solutions
  • πŸ“– Improve documentation - Help make the project clearer

Feel free to open issues or reach out through GitHub for any questions or suggestions.

πŸ‘¨β€πŸ’» Authors

Created by the TaskApp Development Team - Part of the Team Programming course series.

πŸ“„ License

This project is open source and available under the MIT License.


About

A task management system dedicated to IT companies, created in JavaFX. The system supports various user roles (Administrator, Manager, User) and offers comprehensive project, task and reporting management. Project implemented as part of the Team Programming subject.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors