Good to know! Mapsmap.world is a completely functional application that implements all features mentioned below. Make sure to try out for yourself at https://www.mapsmap.world. 😉
🗺 What is Mapsmap.world?
When we saw the problem definition of this hackathon, we immediately understood the underlying problem of the global research efforts: uncoordination. Taking part in research projects of multiple European universities, we experienced how hard it is to organise collaboration and discussion even on a local level.
This is why we created Mapsmap.world, a collaborative, crowdsourced knowledge management and problem mapping platform. Its most basic principle is sharing: each member can freely add and improve the map, while the whole community curates itself to keep the quality of the map high.
Mapsmap.world was developed as a web application in order to be accessible from all major platforms. We also put special focus on making every feature available on mobile devices as well.
The design of the application is clean and minimalistic, but already includes a wide-range of features needed for effective collaboration. The user experience and usability was continuously tested and improved in order to make it easy to use for everyone.
As for all of our hackathon projects, we published the complete source code, ready to open-source every further development. We also designed the architecture of the software to be modular and suitable to be maintained by our community.
📦 What’s included in Mapsmap.world?
Problems structured on multiple levels
In Mapsmap.world all problems are visualised in a single map and represented on multiple levels of hierarchy. Horizontally the problems are first categorised into major groups of research fields. Inside the research areas we define technologies as a more granular way of systematisation. Vertically we are creating levels, to distinguish either the complexity or the development progress of a problem.
In the intersection of technologies and levels are the problems, each of them displayed on a card. The problem cards can be easily organised by drag & drop similar to the card of the research areas and technologies. Just like a Miro board, the map has no ends, we can add new problems, categories and levels without limits.
Relations and dependencies
In real life problems are often related to each other and we thought that this is an extremely important attribution to visualise as well. For each problem we can define two types of relationships: dependencies and consequences.
The dependencies always show the related problems that are required to achieve progress in the current problem. Consequences show the other way around: when progress is achieved on the current problem, the other one can be developed forward as well. All of these dependencies are visible on the map as well.
All maps in the application can be edited by an unlimited number of collaborators, in real-time. This means that whenever another user modifies the map, the problems and the structure will immediately update for us as well. This is an extremely efficient solution to achieve wild-scale crowdsourcing and collaboration.
Versioning and multiple truth
When we open a problem from the map, we always arrive at the detail page of its main version, however we can easily fork off new versions that will coexist as multiple truths. Just as in version control systems, after the forking we essentially duplicate a version, however from now the edits in them will not affect the other version.
When a new consensus is reached, the main version tag can be transferred to any version of the problem.
The application includes a full-fetched text editor, to add nicely formatted descriptions and discussions to problem topics, just like on Wikipedia. Under the hood we store this content in markdown, that can be easily converted into any other popular text format, e.g. Word, HTML or Latex.
Comments and collaboration
Similar to the map view, we support collaboration on the problem level as well. By allowing members to comment on the problems, we immediately start to facilitate discussion. We also added some extra features like replying, or liking and disliking comments to improve the communication capabilities.
Milestones and timelines
In order to track the progress of each problem, an easy way to add milestones have been implemented as well. These milestones are displayed through a timeline, where each of them represents a target outcome that could either be “open”, “in progress” or “finished”. When a milestone is reached, members can update its status and timeline will automatically update as well.
After defining the problems it’s time to actually start solving them and that’s what we call projects. Projects are research efforts led by different organisations that require funding from the community. Mapsmap.world offers a way for crowdfunding, similar to Kickstarter. After project owners set a funding goal, members can back these projects, while the current state of the fundraising is always publicly visible.
Currently donations are accepted either through traditional credit card payments or crypto donations (disclaimer: although the prototype includes these features, no real transaction is made in the beta version).
User and permission management
Users are able to create multiple maps based on their collaborations in different countries or communities. Once a map is created, new members can be invited by their email address, who will gain access to editing features right away. It’s also possible to promote members to map administrators to give them access over the configuration of the map.
Import & export
On the backend side, all information is stored in JSON structures, therefore it could be exported and reused in other systems with great portability. While designing the data structures we set out to achieve a high degree of freedom, meaning that the created datasets could be easily transformed to relational, non-relational, or graph-based databases as well.
When needed, data imports are also available to kickstart the work on new maps.
🛠 How was Mapsmap.world built?
Mapsmap.world is a React application that is available in all major browsers. For UI components it uses the Ant Design System, which was heavily customised with less to get a modern and minimal look. State management was implemented using the industry-standard Redux library.
The platform uses Firebase as its backend, which guarantees secure authentication and heavily protected data storage as well. For every component, high code quality was ensured with Typescript and ESlint modules.
All included libraries are open source and developed in a way to be easily replaceable when needed.
During the development, we followed the lean design principles. The application was continuously tested with real users and their feedback was implemented as well. This ensured that the platform offers excellent user experience for all of future users.
🚀 What’s next for Mapsmap.world?
Mapsmap.world was published in a beta version, and we already see areas ready for improvement. More complex error handling, wider region support, performance improvements and in general, deeper testing for edge cases is required. There are also minor security issues that have to be addressed as soon as possible. At the same time we are already designing new features that we are excited to launch soon.
In the meanwhile we are also designing the way to enhance the tokenization and blockchain aspects of our application. While the aim of this hackathon was to focus solely on the frontend side, we strongly believe that blockchain will have an important role in the success of this project.
We are ready to collaborate with the Foresight and Mapsmap community to start building the future of research together!