Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Visualization Software

Java Developer Week 3 Project

Project Overview

This is a comprehensive Data Visualization Software built in Java that allows users to:

  • Import data from CSV and JSON files
  • Process and clean data automatically
  • Create interactive visualizations (Bar Chart, Line Chart, Pie Chart, Histogram)
  • Customize chart appearance
  • Export charts as PNG images

Features Implemented

1. Data Input and Processing

  • ✅ CSV file reader with proper parsing
  • ✅ JSON file reader with object array support
  • ✅ Data cleaning and validation
  • ✅ Automatic data type detection
  • ✅ Missing data handling

2. Visualization Components

  • ✅ Bar Chart - Compare categories
  • ✅ Line Chart - Show trends
  • ✅ Pie Chart - Display proportions
  • ✅ Histogram - Data distribution
  • ✅ Interactive charts with zoom and pan
  • ✅ Customizable titles and labels

3. User Interface

  • ✅ Intuitive GUI with Swing
  • ✅ File chooser for easy data import
  • ✅ Chart type selector
  • ✅ Column selectors for flexible visualization
  • ✅ Title customization
  • ✅ Export functionality
  • ✅ Information panel with data statistics

Requirements

  • Java JDK 11 or higher
  • Maven (for building)

Project Structure

DataVisualizationSoftware/
├── src/main/java/com/datavis/
│   ├── Main.java                           # Application entry point
│   ├── model/
│   │   └── DataModel.java                  # Data storage model
│   ├── dataprocessing/
│   │   ├── DataReader.java                 # Interface for file readers
│   │   ├── CSVDataReader.java              # CSV file parser
│   │   ├── JSONDataReader.java             # JSON file parser
│   │   └── DataProcessor.java              # Data cleaning and validation
│   ├── visualization/
│   │   └── ChartFactory.java               # Chart generation
│   └── ui/
│       └── MainWindow.java                 # Main application window
├── data/
│   ├── sample_sales.csv                    # Sample CSV data
│   └── sample_weather.json                 # Sample JSON data
└── pom.xml                                 # Maven build configuration

How to Build and Run

Option 1: Using Maven (Recommended)

  1. Build the project:

    mvn clean package
  2. Run the application:

    java -jar target/DataVisualizationSoftware-1.0-jar-with-dependencies.jar

Option 2: Using IDE (IntelliJ IDEA / Eclipse)

  1. Open the project folder in your IDE
  2. Let Maven download dependencies automatically
  3. Run the Main.java file

Option 3: Manual Compilation

  1. Download JFreeChart library:

    • Download jfreechart-1.5.3.jar
    • Place it in the lib/ folder
  2. Compile:

    javac -cp "lib/*" -d bin src/main/java/com/datavis/**/*.java
  3. Run:

    java -cp "bin:lib/*" com.datavis.Main

How to Use the Application

  1. Launch the Application

    • Run the JAR file or Main.java
  2. Load Data

    • Click "Load Data File" button
    • Select a CSV or JSON file
    • Sample files are provided in the data/ folder
  3. Configure Visualization

    • Choose chart type from dropdown
    • Select category column (X-axis)
    • Select value column (Y-axis)
    • Enter a custom title (optional)
  4. Generate Chart

    • Click "Generate Chart" button
    • Chart will appear in the center panel
    • You can interact with the chart (zoom, pan)
  5. Export Chart

    • Click "Export as PNG" button
    • Choose save location
    • Chart will be saved as PNG image
  6. Clear and Start Over

    • Click "Clear" button to reset

Sample Data Files Included

sample_sales.csv

  • Product sales data with revenue information
  • Good for: Bar charts, Pie charts

sample_weather.json

  • Monthly weather data (temperature and rainfall)
  • Good for: Line charts, Histograms

Key Technologies Used

  • Java 11
  • Swing (GUI framework)
  • JFreeChart (Chart library)
  • Maven (Build tool)

Project Objectives Met

Data Input and Processing:

  • Multiple format support (CSV, JSON)
  • Data cleaning algorithms
  • Type detection and validation

Visualization Components:

  • 4 different chart types
  • Interactive and customizable
  • Professional appearance

User Interface:

  • Clean and intuitive design
  • Easy-to-use controls
  • Real-time feedback
  • Export functionality

Troubleshooting

Issue: "No main manifest attribute"

  • Solution: Use the jar-with-dependencies version

Issue: Charts not displaying

  • Solution: Ensure data has at least 2 columns and numeric values

Issue: File not loading

  • Solution: Check file format (must be valid CSV or JSON)

Future Enhancements (Optional)

  • Additional chart types (Scatter plot, Area chart)
  • Database connectivity
  • Real-time data updates
  • Multiple data series support
  • Advanced statistics
  • Theme customization

Credits

Developed as part of Java Developer Internship - Week 3 Project Data Visualization Software v1.0

License

This project is created for educational purposes as part of an internship assignment.

About

A professional Java-based data visualization tool for creating interactive charts from CSV and JSON data. Features bar, line, pie, and histogram visualizations with export capabilities.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages