Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

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 directorycd 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 directorycd 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 ScreenSecure login interface with authentication

Registration ScreenUser registration with validation

Administrator Views

Admin DashboardComplete system overview for administrators

Admin TeamsTeam management and monitoring

Admin Team CreationIntuitive team creation interface

Admin Edit TeamComprehensive team editing capabilities

Employee ManagementEmployee administration panel

Adding EmployeeEmployee addition with role assignment

Edit EmployeeEmployee profile editing

Admin SettingsSystem-wide configuration settings

Admin LogsActivity logs and system monitoring

Admin ReportsComprehensive reporting interface

Manager Views

Manager DashboardTeam and project management dashboard

Manager EmployeesTeam member overview and management

Manager SettingsManager-specific configuration options

Settings ManagerDetailed settings management

Manager ReportsTeam performance and task reports

User Views

User DashboardPersonal task dashboard for users

User Edit DataProfile editing and personal information

User SettingsUser preference and notification settings

Task Management

Adding TasksTask creation with detailed fields

Edit TaskTask modification and status updates

📊 System Design Documentation

Use Case Diagram

Use Case DiagramComplete system use cases and user interactions

Activity Diagrams

Activity Chart 1User authentication and authorization flow

Activity Chart 2Task creation and management processes

Activity Chart 3Employee management workflow

Activity Chart 4Report generation process

Activity Chart 5Team management activities

Activity Chart 6System configuration flow

Activity Chart 7Administrative operations and oversight

Sequence Diagrams

Sequence Diagram 3System component interaction sequences

Sequence Diagram 4Database communication and data flow

Sequence Diagram 5User role-based interaction patterns

Sequence Diagram 6Task processing and update sequence

🗄️ Database Design

Entity Relationship Diagrams

ERD 1Main database structure and entity relationships

ERD 2Detailed 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

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages