Inspiration

It is every individual's responsibility to strive for maintaining ecological balance. Organizations such as JGI are leveraging the power of geospatial data to monitor the habitats and gain insights for developing effective strategies. As developers, our goal was to contribute to the greater goal of creating a better environment by enabling JGI to streamline their mapping lifecycle through our application which supports multiple map revisions and collaborative decision-making.

What it does

Our website serves as a one stop solution for organizations like JGI to conduct faster conservational map revision cycles, which helps them to build effective strategies based on the finalized maps. Our website comes with two interfaces, where a GIS user having adminstrative privileges can closely monitor the Map Review process. A separate UI was created keeping in mind the needs of decision-makers, which enables them to develop and review the maps in simple steps. Through the built-in chat and zoom meeting features, we want to provide the decision-makers a chance to communicate their ideas in a better way and reach consensus during conflicts. Furthermore, the versioning feature supported by our application allows GIS users to retrieve and track every map change a decision-maker has made in any review cycle. This will allow organizations to keep track of past and the current data while prioritizing the actions.

How we built it

Frontend: Our website is built using the Django rest framework, with usage of jquery and AJAX to ensure a faster web experience for users. Our website supports multiple user roles - one for GIS users and the other for decision-makers. When a GIS user first logs in, they have a dashboard which gives a quick insight into the maps submitted for review to them, number of approvals received on a map and many more. For a decision-maker, the dashboard illustrates the different states of the map - (Whether the map is in review stage, or if the GIS user is currently editing it etc.) Each of the roles have a whole different navigation experience tailored based on their requirement and permissions. The data generated by both kinds of users is primarily stored in the MySql database, but is later moved to the Blockchain storage for higher reliability and security.

Backend: Our backend server is built with Node.js and Django. Django server runs the main website related code and the node.js server runs the blockchain code. The server stores map data & schema, along with the decision-makers comments in the MySql database which is then stored in a secondary storage service - Blockchain. The user data along with roles is currently only being stored in the MySql database.

Communication: We provide two main ways for GIS user and the decision-makers to communicate via the Application - chat and zoom meeting. A simple chat box is implemented where if some comments are added while a decision-maker is making changes to map, is directly reflected to the GIS user when he/she is reviewing. The zoom meeting can be leveraged in the case where a consensus couldn't be reached between either among the decision-makers or with the GIS user. Here we are using Zoom APIs which would generate a scheduled meeting based on the timings and timezone we input. This zoom meet link and the password are communicated to the selected recipients through an email. We made use of SMTP to achieve this functionality.

Challenges we ran into

Throughout the application development, we faced multiple challenges while trying to ensure the best web experience for users. However, we were able to successfully overcome all of them.

We revamped our architecture over and over again in order to optimize the data storage and to establish a smoother navigation experience for the users. Every component in the UI has checks to prevent unintentional mistakes from decision-makers at any stage, which may cause a burden to the GIS user (Ex: decision-maker submitting the same map multiple times, try to edit the map when GIS user is reviewing it etc. )

We also had a hard time deciding on the storage mechanism for the map data. As the db is always going to vertically expand, we preferred MySql over NoSql due to its high availability and on-demand scalability. We further went a step ahead to add a secondary layer of storage using a secure solution - Blockchain that enhances security, transparency, and instant traceability.

We faced couple of issues while doing x and y, but have finally resolved it using z.

Accomplishments that we're proud of

We are extremely happy to create a web application that supports organizations like JGI to effectively develop conservational maps that would aid them in prioritizing the strategies and actions. Although we fell back because of knowing about the hackathon late, we have diligently worked over the past one week to not only meet all the requirements but also integrate additional features like chat, zoom meetings, dashboards for GIS user and decision-makers that can help them keep track of the actions etc. We are proud to develop a technical solution that can take organizations like JGI a step closer to the common goal of creating a better environment for animals and humans.

What we learned

Throughout the project, we got to research about multiple technologies such as AWS, Blockchain etc. Also, This being the first time working with the ArcGIS and docusign APIs, we enjoyed a lot learning about the different kinds of graphic layers, feature maps and many more.

Apart from that, we learnt about the importance of a well managed system for reviewing and developing conservational maps which would further aid in better decision making. This hackathon has inspired us to more actively contribute to global conservation and saving the environment.

What's next for MapTrack

As a next step, we want to further scale this application by exploring unlimited storage services like AWS S3. Also, we would like to enhance the authentication and restrict access to the blockchain service if JGI would like to use the app in production For the frontend, there are a lot of operations which require the user to know the status of the operations immediately. For now we have used an alert box, but we would like to make it more advanced by adding push notifications to mobile (Ex: when a map is ready for review, or when the GIS user has approved the user's changes etc. )

Share this project:

Updates