---
# System prepended metadata

title: 'Jam 08 - Streams & JavaFX: Stock Market Data Visualizer'
tags: [data-visualization, javafx, mvc, "2 \U0001F4DD in writing", junit, "3 \U0001F9EA in testing", streams, stock-market, "4 \U0001F973 done"]

---

---
title: "Jam 08 - Streams & JavaFX: Stock Market Data Visualizer"
tags: 
  - 2 📝 in writing
  - 3 🧪 in testing
  - 4 🥳 done
  - streams
  - javafx
  - data-visualization
  - mvc
  - stock-market
  - junit
---
<!-- markdownlint-disable line-length single-h1 no-inline-html -->
<!-- markdownlint-configure-file { "ul-indent": { "indent": 4 }, "link-fragments": {"ignore_case": true} } -->

{%hackmd dJZ5TulxSDKme-3fSY4Lbw %}

# Jam 08 - Streams & JavaFX: Stock Market Data Visualizer

:::spoiler **Course Development Team**
<center>
    <table width="100%">
    <tr align="center">
        <td width="50%">
            <img src="https://www.dropbox.com/scl/fi/uz9dn7vc9y5k43160pdb0/Fun-Artsy-Square.png?rlkey=2zmgqgblwsagukfsb343tl3ye&raw=1" alt="Lily Romano" width="100" style="border-radius: 50%"/><br/>
            <a href="https://lilyromano.com">Lily Romano</a>
        </td>
        <td width="50%">
            <img src="https://www.bucknell.edu/sites/default/files/styles/faculty_page_photo/public/libris/C00001GOQFVeT0YE/G0000hRJySpIobZY/20160419-7C8A4469.jpg" alt="Brian King" width="100" style="border-radius: 50%"/><br/>
            <a href="https://www.bucknell.edu/fac-staff/brian-king">Brian King</a>
        </td>
    </tr>
    </table>
</center>
:::

|                        |                                |
| ---------------------- | ------------------------------ |
| **Working Directory:** | `jam08`                       |
| **Points:**            | 10 pts                        |
| **Team-based?**        | NO (but discussion encouraged) |
| **Due:**               | Monday, 2025-Apr-07         |

# Objectives

- Master the Java Streams API through practical data processing
- Create interactive data visualizations using JavaFX
- Apply the MVC design pattern in a real-world application
- Implement event handling and property binding
- Process and analyze real-world financial data

# Introduction & Outcomes

In this jam, you'll build a stock market data visualization tool that combines the power of Java Streams for data processing with JavaFX for creating interactive visualizations. This project will help you master key Java features while creating a practical application that could be used in the real world.

## What You'll Learn & Accomplish

1. **Data Processing with Streams**
    - Process large datasets efficiently using the Streams API
    - Filter and transform data using functional programming concepts
    - Perform complex aggregations and calculations
    - **Outcome**: Create a robust data processing pipeline for financial data analysis

2. **Interactive Visualization with JavaFX**
    - Build responsive user interfaces
    - Create dynamic charts and graphs
    - Implement real-time updates
    - **Outcome**: Develop an interactive visualization system for stock market data

3. **Software Design Patterns**
    - Apply the MVC pattern effectively
    - Use property binding for automatic UI updates
    - Implement event handling patterns
    - **Outcome**: Create a well-structured application following best practices

4. **Real-World Application Development**
    - Work with actual stock market data
    - Handle data validation and error cases
    - Create user-friendly interfaces
    - **Outcome**: Build a professional-grade financial data visualization tool

<!-- Embeds Jam08-Checklist.md -->
{%hackmd 9f28vN4kQy6nwIWFvfNTyQ %}

<!-- Embeds Jam08-Exercise0.md -->
{%hackmd -QnaXnuiROikZKC3PRx0Zg %}

<!-- Embeds Jam08-Exercise1.md -->
{%hackmd uaMJGdfdQQWY_IFEN2_JLw %}

<!-- Embeds Jam08-Exercise2.md -->
{%hackmd 1Tg1KwEAT_ypC1QY7R9Yzw %}

<!-- Embeds Jam08-Exercise3.md -->
{%hackmd NBZI5m3IQqaEWG-QnSHD-A %}

<!-- Embeds Jam08-Exercise4.md -->
{%hackmd rMwS-urSQ3-YAeZ-UOAQVQ %}

<!-- Embeds Jam08-Summary_Submission.md -->
{%hackmd 8GoWODGgRdOuLmf0lD-Bfg %}
