Home / Our Works / A participatory spatial platform

Participatory Spatial Platform

A map-based survey tool helping collect high-quality geospatial data from area residents and ensuring detailed map visualizations.

Project Description

Our full-stack team had a task to develop a tool that would be able to design map-based surveys, collect spatial input from respondents, analyze received data, transform it into charts and maps, and provide an opportunity to share survey results online. Besides, the solution should have had a user-friendly interface and secure data protection.

Solution

After a thorough study of the project requirements, our experts agreed on using the Koa web framework for Node.js due to its simplicity, speed, and great customization. MongoDB was used as a persistence layer; all database queries were created without any ORM use. JWT provided token generation, while the Moment.js library ensured easy handling of time-related issues. We also used socket.io for real-time data updates and the Babel compiler for the usage of the new features. React.js was chosen for frontend development. Material-UI, in its turn, considerably simplified work on the tables. Redux-form and later React-hook-form let us deal with forms easily, and Redux + Redux-Saga provided data storage.
Result
An appropriate tech-stack and extensive experience enabled us to perform all tasks properly and on time. The following features were implemented:
1Real-time data update (socket.io);
2Emailing and texting;
3Route generation and printing;
4Integration with Google Maps;
5Integration with Stripe;
6Oauth with Google, Linkedin, and Facebook;
Client and Business Goals:
  • To create a solution that provides a bottom-up approach to spatial planning and design.
Collaboration Overview:
  • Engagement Model: Dedicated Development Team
  • Team Size: 2 Developers
  • Project Management Methodology: Kanban
Technologies Used:
    Koa
    MongoDB
    React.js
Project Highlights:
React-hook-formRedux-formRedux + Redux-SagaMaterial-UIBabelMoment.jsBcryptSocket.io