Inspiration

Discovered this hackathon slightly late in early August 2021, thus I chose to follow one of the requirements i.e. to build a mobile application to map and approve geospatial data for conserving chimpanzee habitat for the Jane Goodall Institute.

What it does

The JGI Map application consists of the iOS mobile app front end and backend which is meant for users to create, edit, store conservation maps and collaborate with other users for reviewing and finalising the conservation maps of the Eastern Chimpanzee for Jane Goodall Institute

How I built it

I developed solo for this project. I built both the iOS mobile app and the backend

Building the iOS app can break down into the following components and frameworks:

  • The Swift and SwiftUI framework for the user interface. And the coding approach is based on MVVM (Model View View Model) pattern to ensure cleaner code and better reusability of components.

  • The Esri ArcGIS iOS runtime API for the map and I wrote the SwiftUI layer for wrapping the ArcGIS Map View and the handling of the users drawing points, lines and polygons etc on the map

  • The DocuSign iOS SDK for the users to sign the map with template and I also wrote the SwiftUI layer for wrapping the DocuSign iOS template manager for launching the views for users to sign.

  • I also wrote the part in Swift to communicate with the app's own backend in REST format

The backend of the app was built with PHP and MySQL stack. The backend communicates with the iOS app in REST format. The backend is meant for storing the user's profile, roles, and the user's edited map versions (such as storing the points, lines, polygons, legend on any version of map etc)

Challenges I ran into

The main challenge was I had very limited time before the hackathon's deadline - less than two weeks. And I was completely new with the ArcGIS and DocuSign. So initially, I initially spent time to explore and write some testing code with the ArcGIS and DocuSign iOS SDK by using the online documentations after signing up for the developer accounts.

Since, I managed to build the ArcGIS map for users to draw points, lines and polygons, define map legend etc using SwiftUI and store as multiple versions on the backend, then only I decided to proceed to register for the hackathon on the 8th August and proceed to complete with the DocuSign part. Therefore, I didn't have much time to participate and ask questions on the Slack or any live video channels, due to timezone difference and I was busy with some of my on-going office work too.

Anyway, I still managed to find most of the info of these two technologies from their online documentations although I still haven't figured out yet with a number of how-tos and a number of unsure technical issues, just to name a few :

Such as how to integrate DocuSign OAuth JWT with the app for a single or seamless login to DocuSign for signing, since the conventional one signing in with email and password is already deprecated. How to capture the completion of the signing by all recipients etc?

Accomplishments that I'm proud of

Managed to build an interactive map based on the ArcGIS for the users to add points, draw lines and polygons and managed to design and build the backend for the users to save different versions of their map editing. And also managed to integrate the DocuSign API for the signing of map etc.

What I learned

I've learned how to integrate the ArcGIS map and DocuSign platform for signing of documents etc.

What's next for JGI Map

To complete the unfinished features and fixed the defects, improve the UIs and flow etc.

Implement push notifications to inform reviewing users for map review and signing and perhaps integrate messaging capabilities for better collaboration among stakeholders in the app's Message section.

Perhaps to develop a web or Android native version for the app.

Built With

Share this project:

Updates

posted an update

Having implemented the OAuth JWT for DocuSign sign in

Here is the YouTube video link of the update https://youtu.be/Rny4Qn5QBo0

User has not already given consent must first give consent by signing into DocuSign.

Note : the published GitHub repo still remains as the old one (deprecated), using legacy email/password sign in as I don't think I'm allowed to update the repo since it's already passed the deadline.

Log in or sign up for Devpost to join the conversation.