Building CRISTA: Our Journey in Developing a Web and Mobile App in Just 2.5 Months

Rasna
by Rasna 

The Dhading district of Nepal is highly vulnerable to climate-induced hazards, which have caused significant damage to infrastructure like roads and power systems. 

CRISTA, Climate Resilient Infrastructure for Social Transformation and Adaptation, is a project dedicated to combating this vulnerability. CRISTA uses geospatial data, real-time monitoring, vulnerability assessments, a crowdsourcing app, and a GIS dashboard to enhance climate resilience in the region. 

Team Gurzu had the opportunity to work on this project for the last 2.5 months, contributing our technological expertise to support its development. We are proud to see the impact this project is making, and we are excited to share more about it in this article.

How does CRISTA work?

CRISTA is a natural disaster recording mobile application where users can report incidents such as road and power damage, disasters, landslides, roadblocks, power outages, critical infrastructure damage due to high wind, etc.

Admins use a web app to verify user-reported incidents and mark them as resolved once addressed. They also have the ability to send safety alerts to users. 

Team Setup and Tech Stack

Our development team consisted of the following roles:

  • Team Lead
  • Product Designers
  • Mobile Developer
  • Back end Developer
  • Front End Developer
  • Quality Assurance Engineer

We picked our tech stack based on their rapid development capabilities, efficiency in handling real-time data, building responsive UI, and managing geospatial data. The tech stack used was:

  • Backend: Ruby on Rails
  • Mobile: React Native
  • Web: Next.js , React JS
  • Database: Postgres with PostGIS

Our WorkFlow and Challenges

CRISTA development team followed an agile development process. We worked in weekly sprints, targeting the completion of specific features in each iteration. Each sprint concluded with a release cycle managed through CI/CD.  We used an iterative approach to refine features and fix bugs based on ongoing testing and client feedback.

The CRISTA project spanned about ten weeks, from June to mid August, 2024.

We started the first phase with planning and requirements gathering, and soon after we proceeded to design. Designers had a clear idea of what kind of layout and aesthetics the clients were visualizing for their product. Finalizing the design took about two weeks, incorporating feedback from the team and stakeholders. 

After the designs were ready, we started rapid development, with weekly demos. Minor feedback and changes were implemented timely according to the feedback of the client.

In the second phase, we developed some core functionalities of the portal, including incident reporting, user management, database integration, and API development.

In the third and last phase, we completed frontend interaction, real-time communication implementation, testing, bug fixing, and final deployment.

Handling the Change in Project Scope

As we progressed, the complexity of integrating GIS datasets required adjustments. We handled these changes by expanding our team’s expertise in PostGIS and refining our backend to support real-time data processing, ensuring the project remained on track.

As we delved deeper into the project, the scope expanded to include more advanced features such as predictive analytics, detailed infrastructure mapping, and more robust reporting tools. These changes were handled through agile sprints, where we regularly reassessed our goals, reprioritized tasks, and adapted the development process to accommodate the new features. This iterative approach allowed us to stay flexible and responsive to the evolving needs of the project.

Challenge #1

The biggest challenge was managing multiple incidents reported in nearby locations. The map became cluttered and difficult to navigate when several incidents were reported in the same area. To solve this, we implemented a solution where a single pin would represent all incidents in close proximity. When clicked, the pin would expand to display the individual reports.

The mobile app was to be used by the people of rural areas, who were not tech-savvy. The user experience should be accordingly, not the most challenging, but never designed for such people before.

Challenge #2

Handling real-time communication and data synchronization across different platforms (mobile and web) was challenging.

To address this, we implemented WebSockets for real-time updates and used background jobs to handle heavy processing tasks. We also utilized caching mechanisms and load balancing to maintain performance under high loads.

Following Best Practices During the Project

Each member of the team followed best practices to get the highest quality result. We applied a combination of individual and team-based development techniques to achieve strong results in our project.

  • User-centered and collaborative design approach
  • Regular code reviews and pair programming sessions to maintain high code quality.
  • Maintaining clear and consistent documentation for all features and changes
  • Continuous integration and deployment pipelines to automate testing and deployment
  • Maintaining open and frequent communication among team members and stakeholders to keep everyone informed and aligned.
  • Conducting collaborative brainstorming sessions for problem-solving
  • Continuously learning about PostGIS
  • Weekly sprints and CI/CD for efficient releases
  • Regular client updates and daily stand-ups
  • Focus on rigorous testing of new features and bug fixes for stability and performance.

Our Approach to Communication

There are two types of communication taking place in a software development project. One within the engineering team itself and another one with the stakeholders.

We maintained open, consistent, and transparent lines of communication to ensure everyone was on the same page.

We used Basecamp for project management and task tracking, and Google Meet for regular meetings with clients and within the team. Since most of the team members were working together from the same office space, communication became smoother.

A potential challenge while working with an offshore client can be in aligning schedules across different time zones. We handled this by setting up asynchronous communication channels and keeping detailed meeting notes.

  • We set up weekly update sessions with clients and integrated the feedback we got from them
  • Daily stand-up meetings and end-of-day reviews 
  • Regular brainstorming sessions

Future Works for CRISTA

CRISTA has set the groundwork for future enhancements, such as integrating AI-driven analytics to predict disaster impact and further improving real-time response capabilities. The experience has been instrumental in shaping our approach to development and team collaboration.

The team celebrating on CRISTA release day

Read Similar Stories

From concept to completion: How we delivered a sustainable fashion e-commerce site in three month

Enhanced efficiency for ONEOS through manual and automated testing

.………..………..……….

Gurzu is a full-cycle software development company. Since 2014, we have helped world-class customers get to their markets quickly with high-quality products built with modern software technologies. Our team of experienced developers, designers, and test automation engineers can help to develop your next product.

Have a tech idea you want to turn into reality? Book a free consulting call or simply, leave us a text message.