# Share Your App - Explore Page - November 2024

**URL:** <https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380>\
**Category:** Dash Python\
**Tags:** show-and-tell\
**Created:** [November 1, 2024, 1:35pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380 "2024-11-01T13:35:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 1, 2024, 1:35pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/1 "2024-11-01T13:35:34Z")

</div>

Thank you for your interest in submitting your Dash app to the [Plotly Explore Page](https://plotly.com/examples/) platform, visited by thousands of Dash users daily.

Current submissions cycle will go until November 30, 2024.

To submit your app, please reply to this thread directly.

Please refer to the following suggestions when building and submitting your app. The more suggestions your app adheres to, the more likely it is to be added to the Explore Page.

- Apps in the following categories are encouraged: Energy & Utilities, Business, Predictive Analytics & Forecasting, NLP, Connecting to APIs
- App should look as good or better than the current apps on the platform
- App should use different data than the other apps and try to cover a unique story
- Content/story should be neutral or positive
- App with live data that updates itself is encouraged
- App that goes beyond exploratory analysis – app that perform advanced analytics
- App that uses 3rd-party libraries (e.g., SciPy, spaCy, TensorFlow, Scikit-learn)
- App that solves real-life problems, app that could have practical use cases
- App content and results should be easy to access (we discourage requiring log-ins or uploading data as a precursor to seeing the full app).

The Plotly Example Apps team will review the apps submitted and update this post with the names of the apps that have been selected.

Happy Dash app building!

---

<div class="post-metadata">

**Author:** ![georgesnomicos](https://avatars.discourse-cdn.com/v4/letter/g/85f322/32.png) [@georgesnomicos](https://community.plotly.com/u/georgesnomicos)\
**Post date:** [November 5, 2024, 3:51pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/2 "2024-11-05T15:51:56Z")

</div>

Hi Adam,

Here is my submission for a dash app: [Energy Management Dashboard](https://github.com/gn3112/energy_dashboard/tree/master).

There is an example of the app hosted on Digital Ocean: [app](https://energy-app-j53xm.ondigitalocean.app/).

The app can be part of the Energy & Utilities category, more specifically for energy management within a manufacturing site for instance. This is aimed at monitoring energy usage, keeping a stable consumption and identifying energy efficiency improvement.

The data source can be configured to an API (for now random data is used) via the api file. The app displays global site energy consumption (electricity only for now) and can be customised by adding measurement tags in a csv file where tags are used to query data from an API.

If you have any questions let me know!

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 5, 2024, 4:38pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/3 "2024-11-05T16:38:28Z")

</div>

hi @georgesnomicos  
👋 Welcome to the community, and thank you for this app submission.

I see the data coming into the app is using [the API](https://github.com/gn3112/energy_dashboard/blob/master/app/api/api_historian.py). Can you please share more about the energy consumption data? is this sample data?

---

<div class="post-metadata">

**Author:** ![georgesnomicos](https://avatars.discourse-cdn.com/v4/letter/g/85f322/32.png) [@georgesnomicos](https://community.plotly.com/u/georgesnomicos)\
**Post date:** [November 5, 2024, 4:53pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/4 "2024-11-05T16:53:55Z")

</div>

Yes this is sample data, so it needs to be expanded to specific cases using already defined functions while keeping the same output format.

I had a connection to an API (from an industrial historian) previously but that was for a specific user case.

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 5, 2024, 5:20pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/5 "2024-11-05T17:20:56Z")

</div>

Thank you. We’ll make sure to review this app thoroughly and all other apps submitted in early December.

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 6, 2024, 4:24pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/8 "2024-11-06T16:24:10Z")

</div>

Thank you for the app, @duanwax . When I click the link on the [united-states page](https://max-entropy.com/central-bank-balance-sheet/united-states), I get a 404 Not Found.

Recent references:

- [Kansas City Fed, Rapid Declines in the Fed’s Overnight Reverse Repurchase (ON RRP) Facility May Start to Slow, 11/10/2023](https://max-entropy.com/central-bank-balance-sheet/%7Blink%7D)

I also saw you had United States (with the flag) in all sub-tabs. Is that because you’re planning to add other countries in the future?

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 14, 2024, 4:24pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/11 "2024-11-14T16:24:53Z")

</div>

Yes, there is a clear improvement in speed. Nice job, @duanwax

---

<div class="post-metadata">

**Author:** ![chris3](https://avatars.discourse-cdn.com/v4/letter/c/65b543/32.png) [@chris3](https://community.plotly.com/u/chris3)\
**Post date:** [November 15, 2024, 1:59am UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/12 "2024-11-15T01:59:39Z")

</div>

I made a three page app about UFO sightings in the United States currently hosted at [www.chrisdarley.me](http://www.chrisdarley.me). The first page is an animated map showing UFO sightings from 1910-2014 filterable by shape. The second page is an animated double bar chart comparing yearly and cumulative counts of different observed UFO shapes. The third page is a table where users can lookup descriptions of UFO sightings in their town or any other area of interest. The UFO data is from a dataset someone else scraped from NUFORC (National UFO Reporting Center) and posted on Kaggle, combined with some other government data that was necessary for the map. Future improvements would include trying to improve the speed of certain queries and setting up an automated scraper that collects each new month’s data from NUFORC’s website. This would enable me to incorporate current data and get access to full descriptions (some sighting descriptions past a certain character length were cut off by the original scraper of the dataset). The app is currently hosted on AWS EC2.

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 15, 2024, 7:28pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/13 "2024-11-15T19:28:03Z")

</div>

Great job, @chris3. And 👋 Welcome to the Plotly community.

I liked your animated scatter map. There was a sizeable jump in UFO sightings from 1996-1998. I wonder what caused that. By 2012 the map is saturated.

What does the duration represent exactly? Is that how long people they have see the UFO for?

I think the community would love to explore this data set at one of the upcoming [figure fridays](https://community.plotly.com/tag/figure-friday). Do you mind sharing the data with me?

---

<div class="post-metadata">

**Author:** ![chris3](https://avatars.discourse-cdn.com/v4/letter/c/65b543/32.png) [@chris3](https://community.plotly.com/u/chris3)\
**Post date:** [November 15, 2024, 9:19pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/14 "2024-11-15T21:19:19Z")

</div>

Hi, thank you.

The data originally comes from [Data Bank | NUFORC - Latest UFO Sightings](https://nuforc.org/databank/). The version of the dataset I used was one that someone had scraped from this site in 2014, available on kaggle: [UFO Sightings | Kaggle](https://www.kaggle.com/datasets/NUFORC/ufo-sightings). There is a complete and a scrubbed dataset, and I used the scrubbed version.

It looks like someone else scraped NUFORC’s database again in 2019, with data here: [UFO Sightings (Approx. 90,000) | Kaggle](https://www.kaggle.com/datasets/rishidamarla/ufo-sightings-approx-100000). However, I have not worked with this data at all and it looks to be formatted slightly differently.

I believe the duration is how long the UFO was observed in the sky, although I don’t think the dataset has any specific data definitions other than the column names. Maybe the rise in sightings had to do with people getting access to smartphones…

If people find this dataset interesting, they may want to check out the NUFORC website which has more information about many of the sightings than is included in the records of this database, including more thorough descriptions and sometimes pictures or video of UFOs.

---

<div class="post-metadata">

**Author:** ![chris3](https://avatars.discourse-cdn.com/v4/letter/c/65b543/32.png) [@chris3](https://community.plotly.com/u/chris3)\
**Post date:** [November 15, 2024, 9:25pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/15 "2024-11-15T21:25:45Z")

</div>

I should add that the dataset contains sightings from other countries, although my app just focused on the US.

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 15, 2024, 9:33pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/16 "2024-11-15T21:33:51Z")

</div>

Noted. Thank you Chris. I’ll try to use this data set at the next Figure Friday. Thanks for sharing the data.

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 18, 2024, 3:34pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/18 "2024-11-18T15:34:08Z")

</div>

This is such a nice addition, @duanwax . It took about 10 seconds for the initial load of the map. How did you add those lines and directional arrows? Did you use some CSS?

---

<div class="post-metadata">

**Author:** ![duanwax](https://avatars.discourse-cdn.com/v4/letter/d/278dde/32.png) [@duanwax](https://community.plotly.com/u/duanwax)\
**Post date:** [November 18, 2024, 6:11pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/19 "2024-11-18T18:11:30Z")

</div>

Hi @adamschroeder:

Thanks for trying it out. I do feel the initial load is slow, especially for custom style & too many edges added. I will think about how to optimize.  
To add lines and arrows, I will prepare a git repro for it and share it here in the next few days ( I indeed searched around and didn’t find good solutions). Good news is AI helped a lot, most of the solutions around adding edges are provided by ChatGPT and Claude, and seems they are pretty good at coding for dash 🙂

---

<div class="post-metadata">

**Author:** ![duanwax](https://avatars.discourse-cdn.com/v4/letter/d/278dde/32.png) [@duanwax](https://community.plotly.com/u/duanwax)\
**Post date:** [November 19, 2024, 2:18am UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/20 "2024-11-19T02:18:42Z")

</div>

@adamschroeder

Please see the code repro that add the lines and arrows for direction. The output is:

 ![Screenshot 2024-11-18 at 9.17.47 PM](https://us1.discourse-cdn.com/flex024/uploads/plot/original/3X/0/f/0f02c755e1fd2b349e327a84e2c15c73eb045b55.jpeg)  
Thanks.

```auto
import numpy as np
import plotly.graph_objects as go

def compute_curve_points(start_lat, start_lon, end_lat, end_lon, arc_height=0.2):
    """
    Compute points for a curved path with a directional arrow.
    """
    t = np.linspace(0, 1, 50)

    # Simple sinusoidal curve
    arc_lats = (1 - t) * start_lat + t * end_lat + arc_height * np.sin(np.pi * t)
    arc_lons = (1 - t) * start_lon + t * end_lon

    # Midpoint and direction vector for the arrow
    mid_point = len(t) // 2
    delta_lat = arc_lats[mid_point + 1] - arc_lats[mid_point - 1]
    delta_lon = arc_lons[mid_point + 1] - arc_lons[mid_point - 1]
    length = np.sqrt(delta_lat **2 + delta_lon** 2)
    norm_delta_lat = delta_lat / length
    norm_delta_lon = delta_lon / length

    # Arrow tip and wings
    arrow_scale = 0.4
    wing_scale = 0.3
    arrow_tip_lat = arc_lats[mid_point] + arrow_scale * norm_delta_lat
    arrow_tip_lon = arc_lons[mid_point] + arrow_scale * norm_delta_lon
    wing_lat = wing_scale * norm_delta_lon
    wing_lon = -wing_scale * norm_delta_lat

    return arc_lats, arc_lons, arrow_tip_lat, arrow_tip_lon, wing_lat, wing_lon, norm_delta_lat, norm_delta_lon

def add_curve_with_arrow(figure, start_lat, start_lon, end_lat, end_lon, arc_height=0.2, color='blue'):
    """
    Add a curved path with an arrow to a Mapbox figure.
    """
    arc_lats, arc_lons, arrow_tip_lat, arrow_tip_lon, wing_lat, wing_lon, norm_delta_lat, norm_delta_lon = compute_curve_points(
        start_lat, start_lon, end_lat, end_lon, arc_height
    )

    # Add curved line
    figure.add_trace(go.Scattermapbox(
        mode='lines',
        lat=arc_lats,
        lon=arc_lons,
        line=dict(width=1, color=color),
        hoverinfo='none',
    ))

    # Add arrow
    figure.add_trace(go.Scattermapbox(
        mode='lines',
        lat=[
            arrow_tip_lat,
            arrow_tip_lat - 0.4 * norm_delta_lat + wing_lat,
            arrow_tip_lat,
            arrow_tip_lat - 0.4 * norm_delta_lat - wing_lat
        ],
        lon=[
            arrow_tip_lon,
            arrow_tip_lon - 0.4 * norm_delta_lon + wing_lon,
            arrow_tip_lon,
            arrow_tip_lon - 0.4 * norm_delta_lon - wing_lon
        ],
        line=dict(width=2, color=color),
        hoverinfo='none',
    ))

# Example Usage
def create_map():
    fig = go.Figure()

    # Define two locations
    start_lat, start_lon = 37.7749, -122.4194 # San Francisco
    end_lat, end_lon = 34.0522, -118.2437 # Los Angeles

    # Add curved path with arrow
    add_curve_with_arrow(fig, start_lat, start_lon, end_lat, end_lon, arc_height=2, color='blue')

    # Mapbox settings
    fig.update_layout(
        mapbox=dict(
            style='carto-positron', # Change to your preferred Mapbox style
            center=dict(lat=(start_lat + end_lat) / 2, lon=(start_lon + end_lon) / 2),
            zoom=5,
        ),
        margin=dict(l=0, r=0, t=0, b=0)
    )

    fig.show()

if __name__ == " __main__":
    create_map()

```

---

<div class="post-metadata">

**Author:** ![tstalley](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/tstalley/32/29851_2.png) [@tstalley](https://community.plotly.com/u/tstalley)\
**Post date:** [November 27, 2024, 8:58pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/21 "2024-11-27T20:58:51Z")

</div>

Adam,

finance app: [https://thecapitalfund.onrender.com/](https://thecapitalfund.onrender.com/)

source code: [GitHub - ThomasStalley/TheCapitalFund](https://github.com/ThomasStalley/TheCapitalFund)

the app is a fake investment fund platform.

the app uses real world live financial data (asset prices) from an api.

let me know any concerns or questions and I will get back to you asap!

. . .

I am a huge fan of dash & plotly, thank you and the team for your hard work.

Tom

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [November 27, 2024, 9:22pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/22 "2024-11-27T21:22:35Z")

</div>

Hey Tom,  
Thank you for creating and submitting this app. How often does the data update? Is it usually 24 hours old?

What does the log-in give access to?

---

<div class="post-metadata">

**Author:** ![tstalley](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/tstalley/32/29851_2.png) [@tstalley](https://community.plotly.com/u/tstalley)\
**Post date:** [November 27, 2024, 9:41pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/23 "2024-11-27T21:41:21Z")

</div>

Hey Adam,

Yes every 24 hours (fresh data loaded in at 5am utc). Every 24 hours is the same format as real world investment platforms (hargreaves lansdown, fidelity, vanguard etc).

Log in gives access to account balance, and account pnl. Graph updates to account value over time (calculated using fund price and historic account transactions). Can see callbacks in action with ‘EXAMPLE’ + ‘PASSWRD’.

thanks for the review!

---

<div class="post-metadata">

**Author:** ![tstalley](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/tstalley/32/29851_2.png) [@tstalley](https://community.plotly.com/u/tstalley)\
**Post date:** [November 28, 2024, 6:14pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/24 "2024-11-28T18:14:16Z")

</div>

> [@adamschroeder](#):
>
> Is it usually 24 hours old

I now see what you mean! Latest prices/account value were all from yesterday etc.

Latest data should always be from today - this has now been fixed (in backend).

updated app url: [https://capital.auchester.com/](https://capital.auchester.com/)

---

<div class="post-metadata">

**Author:** ![adamschroeder](https://sea2.discourse-cdn.com/flex024/user_avatar/community.plotly.com/adamschroeder/32/17280_2.png) [@adamschroeder](https://community.plotly.com/u/adamschroeder)\
**Post date:** [December 2, 2024, 6:10pm UTC](https://community.plotly.com/t/share-your-app-explore-page-november-2024/88380/25 "2024-12-02T18:10:13Z")

</div>

Thank you all for your app submissions. We’ll review them and reach out to app authors about potential additions to the Plotly Explore Page later this week.
