You are on page 1of 12

2007

JUST

Jashore University of Science and


Technology

Department of Computer Science and Engineering

Course Code: CSE 2208


Course Name: Software Development Project- 1

Project Report
Study Tracker Desktop Application

ID Name

200109 Md. Sabbir Hossain Bappy


200120 Tarin Prosad Ghosh
200121 Md. Mushfiqur Rahman
200122 Fahim Ahmed
200145 Puspita Sarker

Submission Date: 21 January, 2024


Project Name:
Study Tracker Desktop Applicaon

Programming Language Used in this project:


Java and JavaFX

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.

Objectives of this Project:


User Account: A login system to authencate users.
Task Management: Develop a task management system that enables
users to create and update study tasks.
Using Database: Connecon to an SQL database to store login and task
data.
User-Friendly Interface: Designing user interface that is easy to use.

Scope of the Project:


Let users sign up and log in.
Keeping user info in a SQL database.
Users can add, change, and edit tasks.
Show tasks with tles, details, and dates.
Save tasks in a SQL database and do things like add, view or update
them.
Make the interface look nice with JavaFX.
Easy forms for adding and eding tasks.
Make the interface smooth and responsive.
Get it ready for operang system like Windows and Linux.
Project Benefits:
Get organized: Easily managing study tasks.
Updatable data: As tasks are stored in SQL Database, it can be update
anyme.
Increase producvity: Having study goals clearly and stay on task.
Learnings while doing this project: We will gain skills in soware,
databases, and design.
Potential for Expansion: The project can serve as a foundation for
adding more features in the future, such as reminders, progress
tracking, and collaboration tools.

Software Requirements:
Integrated Development Environment (IDE):
IntelliJ IDEA Community Edition

Java Development Kit (JDK):


OpenJDK - Version 21

GUI Design Tool:


SceneBuilder

Dependencies:
jfoenix-9.0.10.jar: This is a JavaFX material design library. Ensure this library is
included in your project for UI enhancements.

postgresql-42.6.0.jar: This is the PostgreSQL JDBC driver. It facilitates the


connection between your Java application and the PostgreSQL database.

Database Server:
CockroachDB: A free and open-source distributed SQL database that we've
chosen as our database server.

Build and Deployment Tools:


Inno Setup, Launch4j
Implementation details:

Project Code Structure:

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.

This design ensures a normalized structure, reducing redundancy and promoting


data integrity. The relationship between the Users and Tasks tables allows us to
associate tasks with specific users, facilitating efficient organization and retrieval
of task-related information.
ER Diagram:

UI Design Implementation:

Scene Builder and FXML Files:


Our application's user interface is designed using Scene Builder, resulting in
several FXML files that define the layout and structure of different views. Each
FXML file corresponds to a specific scene in our Study Tracker application:
login.fxml: Handles the user login interface.
signup.fxml: Manages the user account creation interface.
about.fxml: Displays information about the application.
additem.fxml: Manages the addition and display of tasks interface.
additemform.fxml: Handles the addition of new tasks interface.
cell.fxml: Manages the display of previously added tasks in cells.
list.fxml: Manages the cells in the list and user login interface.
searchtask.fxml: Manages the user's request to show task details on a
specific date.
These FXML files, created with Scene Builder, define the layout, structure, and
interactive elements of each user interface component, ensuring a visually
appealing and user-friendly experience. The modular design allows for easy
maintenance and updates to the graphical user interface.
User Manual:

You can Login with your


username and password

If you dont have any account


you can create from here

Information about
the application

Fill up all information


and click sign up for
creating your accouny

You can add new


tasks from here

you can see your previously


added tasks here
Tasks list of the user

Delete existing task

Updating the task

Users can add new


tasks from here

Users can search tasks


for any specific date

Search result

Users can search tasks


for any specific date
Project Risks:
User Adoption: Encouraging students to actively participate on the platform
may pose a challenge.
Usability: Ensuring that the platform is user-friendly and visually appealing to
facilitate exploration and engagement.
Data Privacy: Ensuring the privacy and security of student data.

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.

You might also like