Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
9 views6 pages

Data Viz Report Rewrite

The document outlines a project report for a Java-based desktop data visualization application developed at the University of Buea. It aims to provide an intuitive tool for users to visualize data through various chart types, supporting CSV file imports and manual data entry, while adhering to the MVC architecture. The application is designed for educational and small business use, prioritizing ease of use and essential features over complexity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views6 pages

Data Viz Report Rewrite

The document outlines a project report for a Java-based desktop data visualization application developed at the University of Buea. It aims to provide an intuitive tool for users to visualize data through various chart types, supporting CSV file imports and manual data entry, while adhering to the MVC architecture. The application is designed for educational and small business use, prioritizing ease of use and essential features over complexity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

UNIVERSITY OF BUEA

FACULTY OF SCIENCE

DEPARTMENT OF COMPUTER SCIENCE

BACHELOR OF SCIENCE IN COMPUTER SCIENCE

PROJECT REPORT

DESKTOP DATA VISUALIZATION APPLICATION

JEME BESEKA FONCHAM SC20A942

SUPERVISOR DR. NKWETEYIM L. DENIS

APRIL 2025

CHAPTER 1

INTRODUCTION

1.1 Background of Study

The increasing digitization of operations across industries has led to an explosion in the amount of data
generated. This has created a pressing need for efficient, accessible tools that can help individuals and
organizations interpret data and make informed decisions. Data visualization addresses this need by
enabling users to translate complex data sets into intuitive graphical representations.

While many data visualization tools exist, most are either web-based or integrated into complex business
intelligence platforms, making them less accessible to users requiring lightweight desktop solutions. This
project bridges this gap by developing a Java-based desktop data visualization application with a user-
friendly interface and essential functionality, targeting students, educators, small business owners, and
data enthusiasts.

The application is implemented using JavaFX and adheres to the Model-View-Controller (MVC) architectural
pattern, ensuring modularity and maintainability. It supports data import from CSV files, manual data entry,
and multiple chart types including bar, pie, line, scatter, and area charts. Additional features include real-
time chart generation, PNG export, and data resetting.

1.2 Aims and Objectives

1
The aim of this project is to develop a robust and intuitive desktop application for data visualization using
JavaFX. The objectives are:

• To implement a Java-based application with a clean, responsive user interface.


• To support data import from CSV files and manual table-based input.
• To enable real-time generation of various chart types including pie, bar, line, scatter, and area charts.
• To provide export functionality for saving charts as images (PNG format).
• To adhere to the MVC architectural pattern for better code organization and scalability.
• To ensure basic data validation and ease of use for non-technical users.

1.3 Scope

This project focuses on the development of a self-contained, single-user desktop application for basic data
visualization tasks. The application includes features such as:

• Data loading from CSV files with automatic parsing.


• Manual data input with a spreadsheet-like interface.
• Chart generation for multiple types: pie, bar, line, scatter, and area.
• Export of charts to PNG format.
• Simple data reset functionality.

Out of scope features include:

• Real-time streaming data visualization.


• Cloud-based storage and collaboration.
• Advanced analytics or machine learning integration.
• Multi-user support or user authentication systems.

The application is intended for educational, academic, and lightweight business analytics use cases where
ease of use and essential features are prioritized over complexity and scalability.

CHAPTER 2

LITERATURE REVIEW

2.1 Overview of Data Visualization

Data visualization has evolved from simple tabular representations to sophisticated graphical and
interactive systems. Its purpose remains the same: to communicate information clearly and effectively
through graphical means. Edward Tufte and Stephen Few have laid foundational design principles that
emphasize clarity, accuracy, and efficiency.

In modern computing, visualizations go beyond static graphs to include interactive dashboards, real-time
visualizations, and dynamic interfaces. The importance of user-centered design has led to the proliferation
of tools that offer both simplicity and depth of functionality.

2.2 Desktop Visualization Applications

2
Desktop applications remain relevant for contexts where offline access, data security, and resource control
are essential. Java, in particular, is a strong choice due to its cross-platform capabilities, robust performance,
and large set of libraries. JavaFX, the successor to Swing, provides modern GUI components with native
support for charts, animations, and layout management.

Studies and developer experience show that desktop-based visualization tools are often faster, offer better
data privacy, and allow deeper OS-level integration compared to web apps. For individual users and small
businesses, desktop applications offer a compelling balance of power and simplicity.

2.3 Visualization Techniques and Best Practices

Best practices for effective data visualization include:

• Selecting appropriate chart types for different data relationships


• Ensuring clear axis labeling and use of legends
• Avoiding chartjunk (unnecessary graphical elements)
• Leveraging color coding judiciously to enhance readability
• Providing interaction for users to explore the data (e.g., tooltips)

These principles were incorporated into the current application design to ensure usability and data
comprehension.

2.4 Technical Frameworks

JavaFX and OpenCSV were selected as the foundational technologies. JavaFX supports native charting
libraries and FXML for UI layout, while OpenCSV simplifies CSV parsing.

• JavaFX: GUI development, includes built-in charts


• OpenCSV: Lightweight CSV parsing library
• Maven: Project management and dependency resolution

These tools together facilitate a robust and maintainable Java desktop application that meets visualization
needs.

CHAPTER 3

SYSTEM DESIGN AND ARCHITECTURE

3.1 Methodology

The system was developed using an incremental and modular approach based on the MVC architecture.

• Model: Contains data representations (CSV data and headers)


• View: FXML layouts (LandingView.fxml, MainView.fxml)
• Controller: Java classes (LandingController.java, MainController.java) handle all logic and data flow

3
The project was managed using Maven for build and dependency management. Development was carried
out in an IDE (IntelliJ IDEA or NetBeans) with Java 17.

3.2 Application Workflow

1. Landing Page: Introduces the user to the application


2. Data Input:
3. Manual entry via editable table
4. CSV file upload and preview
5. Visualization:
6. User selects chart type and X/Y columns (for applicable charts)
7. Chart is generated in real-time
8. Export & Reset:
9. Charts can be saved as PNG
10. Data and views can be reset

3.3 UI and Interaction Design

• FXML files define a clean, responsive layout


• Buttons and controls are linked to controller methods
• Charts are updated instantly on user input

CHAPTER 4

IMPLEMENTATION

4.1 Tools and Technologies

• Java 17: Core programming language


• JavaFX 17.0.2: UI toolkit and charting
• OpenCSV 5.7.1: CSV parsing
• Maven 3.6+: Dependency management
• SceneBuilder: FXML editing

4.2 Code Structure

src/main/java/com/datavisualizer/
├── Main.java # Entry point
└── controller/
├── LandingController.java # Welcome page
└── MainController.java # Main interface logic

src/main/resources/fxml/
├── LandingView.fxml # Landing layout
└── MainView.fxml # Main layout

4
4.3 Feature Highlights

• Dynamic Chart Selection: Line, bar, pie, scatter, and area charts based on input columns
• Manual Data Input: Editable table with headers
• CSV Upload: File chooser integration with real-time parsing
• Image Export: Save current chart as PNG
• Reset: Clears data and resets views

4.4 Key Snippets

Manual Data Input:

ObservableList<ObservableList<String>> data =
FXCollections.observableArrayList();
tableView.setItems(data);

Chart Generation:

XYChart.Series<String, Number> series = new XYChart.Series<>();


series.setName("Sample");
series.getData().add(new XYChart.Data<>(xValue, yValue));
lineChart.getData().add(series);

Exporting Charts:

WritableImage image = chart.snapshot(new SnapshotParameters(), null);


ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", file);

CHAPTER 5

CONCLUSION AND RECOMMENDATIONS

5.1 Conclusion

The project achieved its goal of creating a flexible, user-friendly desktop data visualization application.
Through JavaFX and OpenCSV, the application supports both manual and CSV-based input and allows for
multiple chart types with dynamic export functionality.

The modular MVC architecture ensures clean separation of logic and provides a strong foundation for
future enhancements.

5.2 Recommendations

5
Future improvements may include: - Adding new chart types (histogram, boxplot) - Enabling undo/redo
functionality - Improving UI/UX with animations and transitions - Introducing filtering and sorting of
datasets - Supporting multiple file formats (Excel, JSON) - Incorporating basic analytics/statistics tools

REFERENCES

Few, S. (2012). Show Me the Numbers: Designing Tables and Graphs to Enlighten. Ware, C. (2013).
Information Visualization: Perception for Design. OpenCSV Documentation: https://
opencsv.sourceforge.net/ JavaFX Documentation: https://openjfx.io/ Maven Project: https://
maven.apache.org/

You might also like