## Inspiration

We wanted to build a sustainable project which gave us the idea to plant crops on a farmland in a way that would give the farmer the maximum profit. The program also accounts for crop rotation which means that the land gets time to replenish its nutrients and increase the quality of the soil.

## What it does

It does many things, It first checks what crops can be grown in that area or land depending on the weather of the area, the soil, the nutrients in the soil, the amount of precipitation, and much more information that we have got from the APIs that we have used in the project. It then forms a plan which accounts for the crop rotation process. This helps the land regain its lost nutrients while increasing the profits that the farmer is getting from his or her land. This means that without stopping the process of harvesting we are regaining the lost nutrients. It also gives the farmer daily updates on the weather in that area so that he can be prepared for severe weather.

## How we built it

For most of the backend of the program, we used Python.
For the front end of the website, we used HTML. To format the website we used CSS. we have also used Javascript for formates and to connect Python to HTML.
We used the API of Twilio in order to send daily messages to the user in order to help the user be ready for severe weather conditions.

## Challenges we ran into

The biggest challenge that we faced during the making of this project was the connection of the Python code with the HTML code. so that the website can display crop rotation patterns after executing the Python back end script.

## Accomplishments that we're proud of

While making this each of us in the group has accomplished a lot of things. This project as a whole was a great learning experience for all of us. We got to know a lot of things about the different APIs that we have used throughout the project. We also accomplished making predictions on which crops can be grown in an area depending on the weather of the area in the past years and what would be the best crop rotation patterns. On the whole, it was cool to see how the project went from data collection to processing to finally presentation.

## What we learned

We have learned a lot of things in the course of this hackathon. We learned team management and time management, Moreover, we got hands on experience in Machine Learning. We got to implement Linear Regression, Random decision trees, SVM models. Finally, using APIs became second nature to us because of the number of them we had to use to pull data.

## What's next for ECO-HARVEST

For now, the data we have is only limited to the United States, in the future we plan to increase it to the whole world and also increase our accuracy in predicting which crops can be grown in the area. Using the crops that we can grow in the area we want to give better crop rotation models so that the soil will gain its lost nutrients faster. We also plan to give better and more informative daily messages to the user in the future.
## Inspiration

Agriculture is the backbone of our society. Not only providing a supply of food, agriculture is responsible for the production of raw materials such as textiles, sugar, coffee, cocoa, and oils. For many, agriculture is not only an occupation but it is a way of life. This is especially true for those farmers in developing regions around the world. Without having access to smart agriculture technology and mass amounts of weather data, these farmers face challenges such as diminishing crop yields due to inconsistent weather patterns.

Due to climate change in recent years, large-scale developed farms have experienced a declination of nearly 17% in crop yield despite having massive amounts of resources and support to back up their losses. For those in developing countries, these responses cannot be replicated, and farmers are left with insufficient harvests after a season of growing. The widespread impact of agriculture on communities in developing countries lead to the creation of Peak PerFARMance - a data-driven tool designed to provide farmers with the information necessary to make informed decisions about crop production.

## What it does

Peak PerFARMance is a holistic platform providing real-time hardware data and historical weather indexes to allow small-scale farmers to grow crops efficiently and tackle the challenges introduced by climate change. Our platform features a unique map that allows users to draw a polygon of any shape on the map in order to retrieve in-depth data about the geographical area such as normalized difference vegetation index, UV index, temperature, humidity, pressure, cloud coverage, and wind conditions. Not only retrieving real-time data, but our platform also provides historical data and compares it with current conditions to allow farmers to get a holistic understanding of weather trends allowing them to make more informed decisions about the crops they grow. In addition, our platform combines data retrieved from real-time hardware beacons composed of environmental sensors to provide further information about the conditions on the farm.

## How we built it

The backend of the project was built in Go. We created APIs for creating polygons, retrieving polygons, and retrieving specific data for the polygon. We integrated the backend with external APIs such as Agro APIs and Open Weather APIs. This allowed us to retrieve data for specific date ranges. The frontend would make API requests to the backend in order to display the data in the frontend dashboards.

The frontend of the project was built using ReactJS. This is the user entry of the project and it is where the user will draw the polygon to retrieve the data. The hardware sensor data is retrieved by the frontend from Google Firebase where it is then processed and displayed. We integrated the frontend with several styling APIs such as ApexChartJS and Bootstrap in order to create the UI for the website.

The hardware for the project was built on top of the Arduino platform and the data was communicated over serial to a host computer where we read the data using a Python script and uploaded it to a Google Real-time Firebase.

## Challenges we ran into

A challenge we faced when building the backend was working with Go. None of our team members had any prior knowledge working with Go in creating web applications. We wanted to learn a new language during this hackathon, which was challenging but rewarding. An issue we ran into was converting the data between json and structs in Go. Furthermore, the APIs had limited number of past dates that we could get data for.

## Accomplishments that we're proud of

For the backend, an accomplishment we’re proud of was how we were able to learn using a new language for creating multiple APIs and also successfully integrating it to the rest of the project. While there were multiple hours spent debugging, we’re proud of how our team members collaborated in troubleshooting bugs and issues together.

## What we learned

Having had no experience with Go prior to this weekend, we were able to learn the language and how to leverage it in creating web applications.

From the frontend perspective, I have not had experience working with SASS before. I was also to leverage this new styling format to create more effective stylesheets for our React app.

Also, for several of our team members, this was their first online hackathon so we spent a lot of time learning how to create an effective virtual pitch and to make a video for our virtual submission.

## What's next for Peak PerFARMance

With Peak PerFARMance, we were able to combine a ton of data from numerous sources into a simple-to-use dashboard. In the future, we would like to use machine learning to extract even more insight out of this wealth of data and provide tailored suggestions to farmers.

For this project, we wanted to incorporate LoRaWAN (long range low-power wide-area network) technology to connect many of the IoT sensors over vast distances --- a feat which would be impossible and/or expensive with traditional Wi-Fi and cellular technologies. Unfortunately, the hardware components for this did not arrive in time for this hackathon. We are really excited for it to arrive --- we believe that Peak PerFARMance is the perfect project to show off this technology.
Play the game with the links below using weather data from:

* [Los Angeles](https://bloomhw4.herokuapp.com/losangeles)
* [Halifax](https://bloomhw4.herokuapp.com/halifax)
* [London](https://bloomhw4.herokuapp.com/london)

[Check out the GitHub repo.](https://github.com/YuanC/nice-game)

## Inspiration

We wanted to create a game where community members are brought together in a collaborative environment, to encourage creativity and teamwork. Bloom is the first game (that we are aware of) to use real-time weather changes to affect how the game is played, which we believe is a unique and interesting mechanic to integrate into a video game.

## What it does

Users are connected based on geographical location and work to grow and populate an island with plant life. Think of it as a garden for communities to take care of together. Each location has a different island, and it is up to the players to determine how they want to populate it. Players are rewarded for collaboration, as they can grow more options of plant life through teamwork, rather than basic plant life individually.

The weather is constantly affecting how the game is played. During sunny days, plants need to be watered more often, whereas, during rainy days, plant growth is enhanced. The way we determine the game weather is through real-time data collected from the Weather Network.

## How we built it

We built this game using Babylon.js, javascript, node, socket.io, and the Weather Network API. Babylon.js allows us to create the game engine and set up the frontend. Javascript is used in the backend to handle game mechanics, with node, express, and socket.io as the means of setting up a multiplayer server. Finally, the Weather Network API is used to pull real-time weather data to determine the weather state of the game, per location.

## Challenges we ran into

The most challenging thing we ran into was coming up with a name for the game. We also had a hard time learning how to initially use Babylon.js, as well as implementing a pathing algorithm for the wildlife.

## Accomplishments that we're proud of

The game is turning out to be almost exactly how we envisioned it to be, and it's really cool to see how our whiteboard idea drawing and brainstorming session can come to life digitally.

## What we learned

Some things we learned about developing this project:

* Setting up a server
* Implementing a grid system
* Making API calls and interpreting the data
* Applying restraints to a world camera

## What's next for Bloom

We have many features in mind for Bloom, some of these include allowing in-game avatars, creating buildings, interacting with various forms of wildlife, implementing a system for snow or extreme weather conditions. We have an extensive list to possibly implement if we find time in the future.