Professional Documents
Culture Documents
JUST
Project Report
Study Tracker Desktop Application
ID Name
Project Summary:
We have developed a Study Tracker desktop application that includes user
account and task management functionality.
This application will allow users to create, edit tasks, and all task data will be
stored in an SQL database. The application aims to help students organize and
track their study tasks efficiently.
Software Requirements:
Integrated Development Environment (IDE):
IntelliJ IDEA Community Edition
Dependencies:
jfoenix-9.0.10.jar: This is a JavaFX material design library. Ensure this library is
included in your project for UI enhancements.
Database Server:
CockroachDB: A free and open-source distributed SQL database that we've
chosen as our database server.
Package 1: com.example.animations
Classes:
1. Shaker:
Implements the shaking effect for Username and Password fields after an
incorrect login attempt.
Utilizes the TranslateTransition class from the javafx.animation package.
Package 2: com.example.database
Classes:
1. Configs:
Holds database information such as host name, user name, and
password.
Inherited by the DatabaseHandler class.
2. Const:
Holds column names of the database as string constants, reducing
redundancy in other classes.
3. DatabaseHandler:
Manages interactions between the application and the database.
Uses the Connection class from the java.sql.* package.
Handles actions such as user signup, retrieving user details, managing
tasks, and database connectivity.
Provides methods like signUp, getUser, getTaskByUser, insertTask,
deleteTask, updateTask, getAllTask, isUserNameExists, and
getTaskByDate.
Package 3: com.example.model
Classes:
1. Task:
Implements getter and setter methods for managing task details.
2. User:
Implements getter and setter methods for managing user details.
Package 4: com.example.studytracker
Classes:
1. AdditemController:
Manages the addition and display of tasks.
Utilizes the JFXButton class from com.jfoenix.controls.JFXButton and
ImageView class from javafx.scene.image.ImageView package.
2. AdditemFormController:
Manages the addition of new tasks.
Utilizes the JFXButton class and TextField class from
com.jfoenix.controls.JFXButton and javafx.scene.control.TextField
packages, respectively.
3. CellController:
Manages the display of previously added tasks in cells.
Extends JFXListCell<> class from com.jfoenix.controls.JFXListCell.
Uses Label class from javafx.scene.control.Label and ImageView class
from javafx.scene.image.ImageView packages.
4. HelloApplication:
Main class that extends the Application class from
javafx.application.Application.
5. ListController:
Manages the cells in the list and user login.
Utilizes the JFXButton class and TextField class.
6. Main:
Extends HelloApplication class and contains the main method.
7. SearchResultController:
Manages the display of tasks on a specific date.
Uses JFXListCell<> class.
8. SearchTaskController:
Manages the user's request to show task details on a specific date.
Implements getter and setter methods.
9. SignUpController:
Manages user account creation.
Utilizes JFXButton, TextField, and JFXCheckbox classes.
10. UpdateController:
Manages the update of tasks in the task list.
Utilizes JFXButton and TextField classes.
Classes used in this project:
Classes Diagram
Database Implementation:
In our database implementation, we have designed a relational database with two
key tables: Users and Tasks.
Users Table:
Columns:
user_id (Primary Key): Unique identifier for each user.
first_name: First name of the user.
last_name: Last name of the user.
institution: Institution or organization associated with the user.
gender: Gender of the user.
username: User's unique username for authentication.
password: Encrypted password for user authentication.
Tasks Table:
Columns:
task_id (Primary Key): Unique identifier for each task.
user_id (Foreign Key): References the user_id in the Users table,
establishing a relationship between users and their tasks.
created_date: Date when the task was created.
description: A brief description of the task.
task: Details of the task itself.
UI Design Implementation:
Information about
the application
Search result
Conclusion:
Our Study Tracker desktop application, developed using Java with JavaFX for the
user interface and an SQL database for data storage, offers an efficient solution
for university students to manage their study tasks effectively. With user
authentication, robust task management capabilities, a user-friendly interface,
and the application addresses the needs of students seeking to streamline their
academic responsibilities. This project not only provides valuable software
development experience but also contributes to improved productivity and
organization in the academic pursuits of its users.