Developing innovative software can be challenging, and even experienced software agencies can struggle to estimate the time and resources needed to complete a project. Working with government entities can add additional obstacles, often requiring tailored solutions that accommodate multiple operating approaches and needs of various users, without altering people's mental models and workflow. However, at Obsidian Systems, we enjoy tackling challenges and thrive in turning our clients' ideas into solutions regardless of their technical expertise. Recently, we were thrilled to receive a request from the government of Peru to create a personalized view into the projects impacting each region of Peru, empowering residents to help shape their country. This is the story of how Obsidian Systems codes interactive systems in a purely functional way.
The Secretariat of Government and Digital Transformation in Peru aimed to create a platform for publishing and reviewing data and georeferenced information. The goal was to ensure that the necessary data was readily available for strategic decision-making that was focused on specific territories. The platform aimed to include data from various regions, such as cartography, infrastructure, public investment projects, society, economy, and environment.
Our team used our own web framework Obelisk to develop this project from scratch, utilizing Haskell's type system to develop quickly across various platforms (web, iOS, and Android) and integrate strong shared-typing across the frontend and backend. The client provided the database, which we interfaced with by recreating the schema in beam. This allowed us to create a strongly typed version of their very fluid database schema, enabling us to easily track any changes that occurred. We collaborated closely with the government to ensure that the system's design aligned with their brand colors and style guide. Creating a UI with an intuitive user experience was quite a task because we had to cater to people of all ages and technical abilities. However, with the tight feedback loop, we designed a system that met everyone's needs and expectations. During development, Peru citizens were kept informed of our progress and provided with timelines, documents, surveyor reports, and technologies to express their opinions and vote on various components of the system. Our team also built an all-encompassing CMS component that enabled government employees to update, add, and modify content. Writing software for the non-English market was a new experience for us, but we received support from the collaborating team at Piensa Labs to ensure everything was correct.
The client now has a new web-based application, well integrated with the pre-existing infrastructure that provides the public with relevant information on plans happening in Peru. This application serves almost 34 million people, and we are pleased with the successful cooperation that led to its creation. Please check out Geo Perú - La Plataforma Nacional de Datos Georreferenciados service and the screenshots from working solutions.
Try Obelisk at home
Our OSS framework, Obelisk, is designed for creating web and mobile apps using Haskell. As a team at Obsidian Systems, we are dogfooding our own offerings to improve them on a daily basis. Feel free to star the project on GitHub and get started writing your own cross platform webapps or, contact us if you need help.
Dogfooding involves the consistent use of a product you have built, putting yourself in the shoes of a user, to identify its strengths and areas that require improvement. ↩︎