# Tanzania-Weather-SMS
## Why the Project?
## Video Link
youtu.be
My project tries to solve the problem of lacking weather information for farmers, particularly in Africa.
Farmers require weather information daily to plan for their agricultural produce, but most lack smartphones,
and instead use flip-phones. My project gets track of rainfall data from csv.files downloaded from TMA website
and sends the requested weather information to farmers by SMS.
## Features implemented
1. The first feature is the creation of the Symbol Tables. In the file "TanzaniaWeatherData.java", I try to create in
A smaller symbol table first, with dates and rainfall data. This is implemented in the method "monthDateAndRainfall".
I then create a bigger symbol table with regions, dates and rainfall data. This is implemented in the method
"regionsNumericalDatesAndRainfall". I then fill in the symbol table using the method "fillInWeatherData". Other
executions such as average and range are calculated in the "TanzaniaWeatherApp.java".
2. The second feature is the implementation of the Twilio library in the file "SmsWebhookHandler.java". The purpose of
This file is to get SMS input from the Twilio phone number "+17473077056" and use it as a text to be implemented in the
"TanzaniaWeather.java" file.
3. The third feature is the implementation of the Twilio library in the file "SMSSend.java:. The purpose of this file is
To send SMS output to the user of the requested information.
### How to compile and run
To run the program, you need to open three terminal windows in IntelliJ. In the first terminal, you should run "./ngrok"
.You should run "./server" in the second terminal and wait until you see the output "Successfully written". Then you
run "./TanzaniaWeather" in the third terminal. After running the program, in order to test it you need to change the
Phone number typed "+16099337966" in line 235 in TanzaniaWeatherApp.java into your phone number f …