top of page

Data Visualizer

This project is a work sample based on a previous Python application that has been converted to HTML, JavaScript, and CSS for display purposes.

​

The original application was built using Python and PyQt5, with Plotly for data visualization.

 

This HTML version leverages JavaScript, Plotly.js, and jsPDF to provide a similar interactive experience, including data uploading, visualization, and export options, showcasing the versatility of my skills across different languages and frameworks.

Data Visualizer Case Study

Project Overview

The Data Visualizer project is a comprehensive web-based application designed to enable users to upload, visualize, and analyze data interactively. With built-in options for theme customization, advanced filtering, data summaries, and export capabilities, this tool provides a powerful yet accessible solution for data exploration. The project highlights my skills in front-end development, UI/UX design, and data handling, making it an excellent example of a professional-grade application built from scratch.

​

Problem Statement

The goal was to create a versatile and user-friendly data visualization tool that allows users to:

  • Load custom datasets from CSV files.

  • Generate 2D and 3D visualizations with adjustable settings.

  • Apply advanced filters and view statistical summaries.

  • Export their findings in the form of downloadable PNG images and detailed PDF reports.

In addition to functionality, the tool needed to feature a modern, visually appealing design with theme options to enhance accessibility.

​

Objectives

  1. Functionality: Provide a robust set of features, including file upload, visualization options, filtering, and data export.

  2. User Experience: Create a clean, intuitive UI that caters to users with various levels of data literacy.

  3. Accessibility: Implement themes for better readability and accessibility, including light, dark, and midnight modes.

  4. Professional Reporting: Allow users to save their visualizations and summaries as high-quality PNG images and detailed PDF reports.

​

Process & Solution

  1. UI/UX Design

    • Design Principles: I focused on a minimalist, accessible design, using rounded corners, soft shadows, and color contrast to provide a clean and modern look.

    • Themes: The tool includes three theme options: Light, Dark, and Midnight. Each theme adjusts both the background and text colors to ensure readability and comfort.

    • Interactivity: Controls such as dropdowns, sliders, and checkboxes provide an interactive experience, making it easy for users to customize their visualization settings.

  2. Functionality & Features

    • Data Upload and Parsing: Users can upload CSV files, which are parsed to extract x, y, and (if available) z coordinates, making it easy to visualize multidimensional data.

    • Visualization Options: The tool offers:

      • 2D and 3D plots (Scatter, Line, and Bar options for 2D).

      • Customizable point size and plot style.

    • Data Summaries: Real-time calculations for mean, median, minimum, maximum, and correlation values provide users with quick insights into their data.

    • Advanced Filtering: Users can filter data by setting minimum and maximum values for each axis, refining the visualization as needed.

    • PNG and PDF Export: Users can export the visualization as a PNG image or generate a comprehensive PDF report, which includes:

      • A summary of all statistics.

      • Information on settings and filters.

      • A screenshot of the plot itself.

    • Local Storage for Settings: Users can save and reload their settings for a seamless experience across sessions.

  3. Technical Skills Demonstrated

    • JavaScript & DOM Manipulation: Implemented complex interactivity, including file handling, dynamic updates, and filtering options.

    • Plotly.js: Used Plotly for visualization, leveraging its capabilities to create both 2D and 3D plots with customizable settings.

    • jsPDF: Integrated jsPDF to generate comprehensive PDF reports that include data summaries, settings, and plot images.

    • CSS for Responsive and Accessible Design: Designed the UI with CSS, ensuring that it looks consistent across different themes and provides an intuitive user experience.

    • Best Practices: Followed coding best practices, including modularity, clear variable naming, and code commenting, to make the project maintainable and extensible.

​

​

Challenges

One challenge was ensuring that the visualizer remained responsive and intuitive while offering numerous customization options. Balancing functionality with simplicity required careful consideration in the layout and design of controls. Additionally, embedding a screenshot of the live visualization within the PDF report was technically challenging, as it required capturing the canvas as an image.

​

Outcome

The Data Visualizer project met all objectives, providing a robust and user-friendly solution for data analysis. This project demonstrates my ability to build feature-rich applications with a focus on UX, functionality, and visual appeal.

​

Key Takeaways

  • UI Consistency and Accessibility: Thoughtfully implemented themes and a clean layout to ensure readability and ease of use.

  • Data-Driven Development: Leveraged data visualization and statistical calculations to enhance user understanding of datasets.

  • Advanced Export Functionality: Provided both visual and report-based export options, adding value for users looking to save or share their findings.

​

Conclusion

The Data Visualizer project showcases my skills in front-end development, data handling, and UI/UX design. With a focus on accessibility and functionality, this project not only provides a powerful tool for data analysis but also serves as a testament to my ability to create professional-grade applications that are both functional and visually appealing.

bottom of page