SlideShare una empresa de Scribd logo
Wildfire
App
Personal Practical Project
Katlin Kalde
Sept-Nov 2023
https://gitlab.com/java-remote-ee27-
course/wildfire-app
Wildfire App
The Wildfire app project idea
When my plane was about to land in Trapani, I saw a small
fire on a field. As one of my friends in Trapani works at forest
fires department, I was thinking how reporting of wildfires
could be made easier.
A week later, when I was leaving, Palermo airport was closed
due to the raging wildfires. A week before the Catania
airport.
The Wildfire App.
My first bigger Java programming project at Software
Development Academy
Wildfire App
WILDFIRE TAB
• Add Wildfire name, latitude, longitude,
radius, coefficient values to the "wildfire"
database
Wildfire App
MAP TAB
• After saving wildfire info in database, the
"Map" tab shows all wildfires info right
away.
Wildfire App
Wildfire App
WILDFIRE TAB
• Only double values are allowed in
latitude, longitude, radius and coefficient
fields
Wildfire App
Wildfire App
MAP TAB
• All wildfires in Database are displayed in
the table when pressing “Show wildfires”.
• Some initial wildfires are auto-generated
at the app start, so if app starts, the info
of auto-generated wildfires is shown.
Wildfire App
MAP TAB
• When selecting one of the wildfires in
wildfires table:
▫ Open Street Map of the fire location is
displayed (querying latitude, longitude from
database and connecting OSM).
Wildfire App
MAP TAB / PEOPLE IN AREA TAB
• When selecting one of the wildfires in
map tab:
▫ People in Red Zone are displayed in
"People in Area" tab.
Wildfire App
MAP TAB
• Deleting a wildfire:
▫ Wildfires can be deleted from table and
database by pressing "Delete a wildfire"
button.
Wildfire App
MAP TAB
• Deleting a wildfire:
▫ If no wildfire is selected then pressing
“Delete a wildfire” button causes an alert
modal to be shown with text: “To delete a
wildfire, please select a wildfire first!”
Wildfire App
MAP TAB
• Updating a wildfire:
▫ Wildfires can be updated by pressing
“Update wildfire" button.
Wildfire App
MAP TAB
• Updating a wildfire:
▫ After selecting a particular wildfire and
pressing "Update wildfire", a new scene is
displayed to update wildfire info in
database.
Wildfire App
MAP TAB
• Updating a wildfire:
▫ As the result the Wildfire info is updated
both in app and database
Wildfire App
DATABASE VIEW
• Updating a wildfire:
▫ As the result the Wildfire info is updated
both in app and database
Wildfire App
FIRESTATIONS TAB
• In firestations tab you can see all
firestations (from database).
• The functionality to show the closest
firestations is yet to be developed
Wildfire App
PEOPLE IN AREA TAB
• To see people in Red Zone, select a
wildfire in MAP tab.
• The functionality of button “Update status
of people in area” is to be developed yet.
Wildfire App
PEOPLE IN AREA TAB
• You may also query the data of all people
from database if you press “Display all
residents” button.
Wildfire App
RESCUERS IN AREA TAB
• If you have selected a wildfire in MAP tab,
then “Rescuers in Area” shows which
rescuers are currently working in this
particular wildfire area.
• With initial demo data you may see that
only Corleone has sent rescuers to the
area.
Wildfire App
RESCUERS IN AREA TAB
• If no rescuers are connected to the
wildfire in database, the alert is
displayed: “No rescuers connected to the
wildfire yet!”
Wildfire App
RESCUERS IN AREA TAB
• If no rescuers are connected to the
wildfire yet (i.e. Trapnani Fire, Palermo
Fire), then the alert is displayed:
No rescuers connected to the wildfire yet!
Wildfire App
ADD RESCUERS IN AREA VIEW
• If you pressed the button “Add rescuers in
area” then a new view to add rescuers is
shown.
• The view is still in development (not
working at the moment)
Wildfire App
WEATHER TAB
• To see weather broadcast of the wildfire
area:
▫ MAP tab → select wildfire
▫ WEATHER tab → “Get weather data”
• Real time 5-day weather data of the
selected location is fetched through the
Open Weather Map API
Wildfire App
THE CODE
• The code is divided into packages:
▫ Controllers (which control the actions of tabs,
buttons, views etc.)
▫ Data:
◦ Dao (interfaces, classes)
◦ Entities
◦ Utils (hibernateUtil class for hibernate settings)
▫ Weatherdata (defining weather data from
web)
Wildfire App
USED TECHNOLOGIES
• Java
• JavaFx
• Hibernate
• MySql (for database)
• Open Weather Map API (for fetching
weather data from web)
• Map data is fetched from Open Street Map
from web (no API key needed)
Wildfire App
PREREQUISITES TO RUN THE CODE
• Maven
• Mysql DB
• intelliJ (optional)
• OpenWeatherMap API key (if you want to fetch weather data from web)
Wildfire App
TO RUN THE APP
• git clone this repository locally https://gitlab.com/java-
remote-ee27-course/wildfire-app.git
• verify MySql is running on the target system
• create a MySql database named: wildfire (or use dump
provided)
• copy the file
src/main/resources/app.properties.example into
src/main/resources/app.properties and provide
appropriate options
• Get Open Weather Map "Call 5 day / 3 hour forecast
data" API key to fetch weather data from web:
https://openweathermap.org/forecast5
• provide API key to your new file:
src/main/resources/app.properties
• the database tables will be created automatically
because of the HBM2DDL_AUTO=create
• launch the application, the entry point is:
com.lunamezzogiorno.wildfireapp.WildfireApp
class
Wildfire App
DATABASE SCHEMA

Más contenido relacionado

Similar a Wildfire App

MD-IV-CH-ppt.ppt
MD-IV-CH-ppt.pptMD-IV-CH-ppt.ppt
MD-IV-CH-ppt.pptbharatt7
 
Academy PRO: HTML5 API multimedia
Academy PRO: HTML5 API multimediaAcademy PRO: HTML5 API multimedia
Academy PRO: HTML5 API multimediaBinary Studio
 
3 - Thermometer.pptx thermometer thermometer thermometer
3 - Thermometer.pptx thermometer thermometer thermometer3 - Thermometer.pptx thermometer thermometer thermometer
3 - Thermometer.pptx thermometer thermometer thermometeraustcornish143
 
Favourite Import Export Ref Guide
Favourite Import Export Ref GuideFavourite Import Export Ref Guide
Favourite Import Export Ref Guideguestab3577f
 
Processing 2.0 + Open Data
Processing 2.0 + Open DataProcessing 2.0 + Open Data
Processing 2.0 + Open DataSteven Battle
 
Integration for Planet Satellite Imagery
Integration for Planet Satellite ImageryIntegration for Planet Satellite Imagery
Integration for Planet Satellite ImagerySafe Software
 
Adobe AIR Development for the BlackBerry PlayBook
Adobe AIR Development for the BlackBerry PlayBookAdobe AIR Development for the BlackBerry PlayBook
Adobe AIR Development for the BlackBerry PlayBookKyle McInnes
 
Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.12Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.125101AVNREGT
 
IRJET- Women Safety Application using Firebase and Geocoder
IRJET-  	  Women Safety Application using Firebase and GeocoderIRJET-  	  Women Safety Application using Firebase and Geocoder
IRJET- Women Safety Application using Firebase and GeocoderIRJET Journal
 
RilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_larger
RilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_largerRilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_larger
RilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_largerRilwan Kujenya
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptfranksvalli
 
GIS Development for Seismic Vulnerability Kiel-Germany 2007
GIS Development for Seismic Vulnerability Kiel-Germany 2007GIS Development for Seismic Vulnerability Kiel-Germany 2007
GIS Development for Seismic Vulnerability Kiel-Germany 2007Vladimir Gutierrez, PhD
 
Introduction to Android for Quality Engineers
Introduction to Android for Quality EngineersIntroduction to Android for Quality Engineers
Introduction to Android for Quality EngineersAhmed Faidy
 
Heart check - Fourth Deadline
Heart check - Fourth DeadlineHeart check - Fourth Deadline
Heart check - Fourth DeadlineMauro Papa
 
P.N. 4219640_inDex User's Manual
P.N. 4219640_inDex User's ManualP.N. 4219640_inDex User's Manual
P.N. 4219640_inDex User's ManualDavid Wise
 
Ch5 intent broadcast receivers adapters and internet
Ch5 intent broadcast receivers adapters and internetCh5 intent broadcast receivers adapters and internet
Ch5 intent broadcast receivers adapters and internetShih-Hsiang Lin
 
Our Data Ourselves, Pydata 2015
Our Data Ourselves, Pydata 2015Our Data Ourselves, Pydata 2015
Our Data Ourselves, Pydata 2015kingsBSD
 

Similar a Wildfire App (20)

MD-IV-CH-ppt.ppt
MD-IV-CH-ppt.pptMD-IV-CH-ppt.ppt
MD-IV-CH-ppt.ppt
 
Academy PRO: HTML5 API multimedia
Academy PRO: HTML5 API multimediaAcademy PRO: HTML5 API multimedia
Academy PRO: HTML5 API multimedia
 
AndroidAppPPT
AndroidAppPPTAndroidAppPPT
AndroidAppPPT
 
3 - Thermometer.pptx thermometer thermometer thermometer
3 - Thermometer.pptx thermometer thermometer thermometer3 - Thermometer.pptx thermometer thermometer thermometer
3 - Thermometer.pptx thermometer thermometer thermometer
 
Favourite Import Export Ref Guide
Favourite Import Export Ref GuideFavourite Import Export Ref Guide
Favourite Import Export Ref Guide
 
Processing 2.0 + Open Data
Processing 2.0 + Open DataProcessing 2.0 + Open Data
Processing 2.0 + Open Data
 
Integration for Planet Satellite Imagery
Integration for Planet Satellite ImageryIntegration for Planet Satellite Imagery
Integration for Planet Satellite Imagery
 
Adobe AIR Development for the BlackBerry PlayBook
Adobe AIR Development for the BlackBerry PlayBookAdobe AIR Development for the BlackBerry PlayBook
Adobe AIR Development for the BlackBerry PlayBook
 
Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.12Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.12
 
IRJET- Women Safety Application using Firebase and Geocoder
IRJET-  	  Women Safety Application using Firebase and GeocoderIRJET-  	  Women Safety Application using Firebase and Geocoder
IRJET- Women Safety Application using Firebase and Geocoder
 
RilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_larger
RilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_largerRilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_larger
RilwanKujenyaBDSDDVBAC-Thesis-HYDRAAR_larger
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScript
 
GIS Development for Seismic Vulnerability Kiel-Germany 2007
GIS Development for Seismic Vulnerability Kiel-Germany 2007GIS Development for Seismic Vulnerability Kiel-Germany 2007
GIS Development for Seismic Vulnerability Kiel-Germany 2007
 
Introduction to Android for Quality Engineers
Introduction to Android for Quality EngineersIntroduction to Android for Quality Engineers
Introduction to Android for Quality Engineers
 
Heart check - Fourth Deadline
Heart check - Fourth DeadlineHeart check - Fourth Deadline
Heart check - Fourth Deadline
 
Safe Building for schools app.
Safe Building for schools app.Safe Building for schools app.
Safe Building for schools app.
 
P.N. 4219640_inDex User's Manual
P.N. 4219640_inDex User's ManualP.N. 4219640_inDex User's Manual
P.N. 4219640_inDex User's Manual
 
Global mapperhelp
Global mapperhelpGlobal mapperhelp
Global mapperhelp
 
Ch5 intent broadcast receivers adapters and internet
Ch5 intent broadcast receivers adapters and internetCh5 intent broadcast receivers adapters and internet
Ch5 intent broadcast receivers adapters and internet
 
Our Data Ourselves, Pydata 2015
Our Data Ourselves, Pydata 2015Our Data Ourselves, Pydata 2015
Our Data Ourselves, Pydata 2015
 

Último

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXUXDXConf
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Motion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyMotion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyUXDXConf
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 

Último (20)

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Motion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyMotion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in Technology
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 

Wildfire App

  • 1. Wildfire App Personal Practical Project Katlin Kalde Sept-Nov 2023 https://gitlab.com/java-remote-ee27- course/wildfire-app
  • 2. Wildfire App The Wildfire app project idea When my plane was about to land in Trapani, I saw a small fire on a field. As one of my friends in Trapani works at forest fires department, I was thinking how reporting of wildfires could be made easier. A week later, when I was leaving, Palermo airport was closed due to the raging wildfires. A week before the Catania airport. The Wildfire App. My first bigger Java programming project at Software Development Academy
  • 3. Wildfire App WILDFIRE TAB • Add Wildfire name, latitude, longitude, radius, coefficient values to the "wildfire" database
  • 4. Wildfire App MAP TAB • After saving wildfire info in database, the "Map" tab shows all wildfires info right away. Wildfire App
  • 5. Wildfire App WILDFIRE TAB • Only double values are allowed in latitude, longitude, radius and coefficient fields Wildfire App
  • 6. Wildfire App MAP TAB • All wildfires in Database are displayed in the table when pressing “Show wildfires”. • Some initial wildfires are auto-generated at the app start, so if app starts, the info of auto-generated wildfires is shown.
  • 7. Wildfire App MAP TAB • When selecting one of the wildfires in wildfires table: ▫ Open Street Map of the fire location is displayed (querying latitude, longitude from database and connecting OSM).
  • 8. Wildfire App MAP TAB / PEOPLE IN AREA TAB • When selecting one of the wildfires in map tab: ▫ People in Red Zone are displayed in "People in Area" tab.
  • 9. Wildfire App MAP TAB • Deleting a wildfire: ▫ Wildfires can be deleted from table and database by pressing "Delete a wildfire" button.
  • 10. Wildfire App MAP TAB • Deleting a wildfire: ▫ If no wildfire is selected then pressing “Delete a wildfire” button causes an alert modal to be shown with text: “To delete a wildfire, please select a wildfire first!”
  • 11. Wildfire App MAP TAB • Updating a wildfire: ▫ Wildfires can be updated by pressing “Update wildfire" button.
  • 12. Wildfire App MAP TAB • Updating a wildfire: ▫ After selecting a particular wildfire and pressing "Update wildfire", a new scene is displayed to update wildfire info in database.
  • 13. Wildfire App MAP TAB • Updating a wildfire: ▫ As the result the Wildfire info is updated both in app and database
  • 14. Wildfire App DATABASE VIEW • Updating a wildfire: ▫ As the result the Wildfire info is updated both in app and database
  • 15. Wildfire App FIRESTATIONS TAB • In firestations tab you can see all firestations (from database). • The functionality to show the closest firestations is yet to be developed
  • 16. Wildfire App PEOPLE IN AREA TAB • To see people in Red Zone, select a wildfire in MAP tab. • The functionality of button “Update status of people in area” is to be developed yet.
  • 17. Wildfire App PEOPLE IN AREA TAB • You may also query the data of all people from database if you press “Display all residents” button.
  • 18. Wildfire App RESCUERS IN AREA TAB • If you have selected a wildfire in MAP tab, then “Rescuers in Area” shows which rescuers are currently working in this particular wildfire area. • With initial demo data you may see that only Corleone has sent rescuers to the area.
  • 19. Wildfire App RESCUERS IN AREA TAB • If no rescuers are connected to the wildfire in database, the alert is displayed: “No rescuers connected to the wildfire yet!”
  • 20. Wildfire App RESCUERS IN AREA TAB • If no rescuers are connected to the wildfire yet (i.e. Trapnani Fire, Palermo Fire), then the alert is displayed: No rescuers connected to the wildfire yet!
  • 21. Wildfire App ADD RESCUERS IN AREA VIEW • If you pressed the button “Add rescuers in area” then a new view to add rescuers is shown. • The view is still in development (not working at the moment)
  • 22. Wildfire App WEATHER TAB • To see weather broadcast of the wildfire area: ▫ MAP tab → select wildfire ▫ WEATHER tab → “Get weather data” • Real time 5-day weather data of the selected location is fetched through the Open Weather Map API
  • 23. Wildfire App THE CODE • The code is divided into packages: ▫ Controllers (which control the actions of tabs, buttons, views etc.) ▫ Data: ◦ Dao (interfaces, classes) ◦ Entities ◦ Utils (hibernateUtil class for hibernate settings) ▫ Weatherdata (defining weather data from web)
  • 24. Wildfire App USED TECHNOLOGIES • Java • JavaFx • Hibernate • MySql (for database) • Open Weather Map API (for fetching weather data from web) • Map data is fetched from Open Street Map from web (no API key needed)
  • 25. Wildfire App PREREQUISITES TO RUN THE CODE • Maven • Mysql DB • intelliJ (optional) • OpenWeatherMap API key (if you want to fetch weather data from web)
  • 26. Wildfire App TO RUN THE APP • git clone this repository locally https://gitlab.com/java- remote-ee27-course/wildfire-app.git • verify MySql is running on the target system • create a MySql database named: wildfire (or use dump provided) • copy the file src/main/resources/app.properties.example into src/main/resources/app.properties and provide appropriate options • Get Open Weather Map "Call 5 day / 3 hour forecast data" API key to fetch weather data from web: https://openweathermap.org/forecast5 • provide API key to your new file: src/main/resources/app.properties • the database tables will be created automatically because of the HBM2DDL_AUTO=create • launch the application, the entry point is: com.lunamezzogiorno.wildfireapp.WildfireApp class