Skip to content

AutoTasker is a desktop application for task management, developed in Java with JavaFX, MySQL, and Hibernate (JPA).

Notifications You must be signed in to change notification settings

saby-gaby/AutoTaskerJavaFx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoTasker logo AutoTasker

AutoTasker is a desktop application for task management, developed in Java with JavaFX, MySQL, and Hibernate (JPA).
The project follows the MVC architectural pattern and combines a modern GUI with a background service for e-mail integration.

🚀 Features

  • User roles: regular users and admins
  • Tasks:
    • Create, delegate, and track status
    • Assigned tasks can be marked as in progress or completed
  • Administrators:
    • Manage tasks, users, departments, and e-mail addresses
    • Control which e-mail addresses are allowed to create tasks (spam protection)
  • E-mail integration:
    • Tasks can be created remotely via e-mail
    • Background service checks a Gmail inbox at intervals
  • Modern UI:
    • Built with JavaFX, FXML, and styled with CSS
  • Security:
    • Passwords are securely hashed using BCrypt
  • Background service:
    • Regularly processes incoming e-mails and automatically generates tasks

🏗 Architecture

  • MVC structure
  • DAO package for database operations
  • Service package for e-mail handling and business logic
  • Controller for GUI logic
  • EntityFactory (Singleton) for entities
  • Two entry points:
    • MainApp (JavaFX GUI)
    • MailServiceMain (background e-mail processor)

💻 Technologies

  • Java 21
  • JavaFX
  • MySQL (database)
  • Hibernate (JPA)
  • BCrypt for password hashing
  • Simmetrics (for text analysis of e-mails)

👨‍🔧 Installation

  1. Clone the repository:

    git clone git@github.com:your-github/AutoTaskerJavaFx.git
    
  2. Set up a MySQL database:

    • Create an empty database (e.g. autotasker).

    • The required tables will be generated automatically by Hibernate + JPA when the application starts.

  3. Configure Gmail account for e-mail integration:

    • Create or use a Gmail account dedicated to AutoTasker.

    • Enable App Passwords in your Google Account (requires 2FA).

    • Insert the generated app password into email.properties.

    • This account will be used by the background service to fetch incoming tasks.

  4. Inside the resources folder, create two property files:

    • db.properties

    • email.properties

👉 Example templates are provided as db.properties.example and email.properties.example in the repository. Just copy them, rename, and adjust the values

  1. Build with Maven:

    mvn clean install
  2. Run:

    • GUI: MainApp

    • E-mail service: MailServiceMain

✨ Possible Extensions

  • Multi-language support (e.g. German, French, ...)

  • Additional features such as vacation or sick leave requests via e-mail

  • Logging and history of all changes

  • Project association for tasks (requires new DB table)

  • Automatic e-mail with login credentials and usage instructions for new users

👩🏻‍💻 Author

Developed by saby-gaby

✨ Thank you for checking out AutoTasker! I hope you enjoy exploring the project as much as I enjoyed building it. 🚀

About

AutoTasker is a desktop application for task management, developed in Java with JavaFX, MySQL, and Hibernate (JPA).

Resources

Stars

Watchers

Forks