About

The prototype we built for the MapsMap hackathon allows anyone to share their problems and reach a large, worldwide audience. Users can look through all the posted problems and use their expertise to share a solution. Once a problem has received one or more solutions, the problem owner can choose one of them and the solution owner receives the tokens that are locked in the chest fund.

Companies, organizations, governments and individuals are all able to benefit from using the MapsMap app. It helps to connect persons and incentivizes finding a solution by allowing to lock tokens for the solution finder.

Our submission consists of:

How we built it

The prototype was developed by two persons over a period of four weeks and we used collaborative tools such as GitHub, Google Drive and Discord to work efficiently from home.

The front- and backend are both built in TypeScript, which is a a strict superset of JavaScript. It helps write safer code and is well suited for robust and large applications.

For the frontend we used React to create re-usable components together with Ant Design an enterprise-class UI design language which comes with many high quality components.

The backend is using the Lisk SDK, an open-source software development kit which enables developers to build scalable Blockchain applications in JavaScript. It is developed by the German company Lightcurve. Lisk uses an energy efficient way of validating blocks called DPoS, short for Delegated Proof of Stake. Users, or delegates, are voted on by token holders and the top 101 are allowed to forge blocks and in turn receive a token reward by the system.

Using blockchain technology comes with several benefits, such as:

  • Decentralized, data is not stored on a single server but spread among many servers all over the world. This decreases the change of data loss, downtime and there is no single owner.
  • Immutable, once data is stored it cannot be removed or tempered with.
  • Transfer of value, tokens in the system have value and can be transferred to others within seconds.
  • Trust, the source code is online and the rules are the same for everyone.

The system is intentionally designed to be open and flexible, this allows the community to find creative ways to use it. It could even be used for contests, using the chest fund as a prize for the winner with the right solution. The primary use is connecting persons with problems to persons with solutions, but it's open to evolve into much more.

Features

Here's a list of features in the current prototype:

  • Custom MAPX token; The currency used in the whole MapsMap ecosystem.
  • Problems and Solutions word cloud; allows users to easily identify trends and popular tags.
  • Problems and Solutions lists; easy to navigate and sort all the problems and solutions.
  • Account view; allows users to view their own account details or from other persons.
  • Account contacts; users must add one or more ways for others to contact them. This can be done with social media channels like Twitter, allowing a user to remain semi-anonymous if they choose so.
  • Public secure REST and WebSocket API; export data and communicate with other software.
  • Data Map; provides a visual, global overview off all the problems, solutions and their status.
  • Chest fund; problem owners can lock MAPX tokens which are rewarded to the solution finder.
  • Mobile friendly; main features can be used on mobile devices.
  • Edit problems and solutions; both can be updated until a solution is chosen.

Data map

The overview page in the app shows a map of all the problems and solutions on the chain. Purple nodes are problems, blue ones are solutions and green ones indicate that a problem is solved by a solution. It's possible to zoom in and out using the buttons in the bottom left menu or using the scroll wheel on the mouse. Click on an empty spot to drag the canvas or on a node to drag the node. Clicking on a node takes you to the problem or solution.

Accomplishments that we're proud of

We are proud of creating a working blockchain application that will allow many people to find answers to their problems.

What's next for MapsMap Prototype

There's still much more to do before production launch is possible. Currently the blockchain node runs on a single server. The final goal is to launch the mainnet and have many users support the project by using and promoting it and running a node. This can be done with the help of the MapsMap, Lisk and other communities. It's even possible to reward persons for helping by giving away tokens.

New features

  • Search functionality.
  • Upgrade the overall design by hiring a designer.
  • Allow other persons to add tokens to chest funds.
  • Add a Lisker module, allows persons to create custom avatars from Lisker.io
  • Allow video content in problems and solutions.
  • Optional sub problems and solutions. Divide a big problem in several smaller ones.
  • Build and expand the MapsMap community.
  • Add guardian roles and helpful tools to keep the content clean.
  • Add a DAO module, allow persons to vote for new features and changes.

Appendix

API endpoints

Account

  • /api/accounts/{address}

Problems

  • /api/problem/{problemId}
  • /api/problems
  • /api/problems/open
  • /api/problems/solved
  • /api/problems/owner/{address}

Solutions

  • /api/solution/{solutionId}
  • /api/solutions
  • /api/solutions/owner/{address}
  • /api/solutions/problem/{problemId}

API server: https://api.mapsmap.app/api

Example calls:

api.mapsmap.app/api/problems/

api.mapsmap.app/api/accounts/43dfce3491297a57fbb7babf9316a6011b993ae4

Custom blockchain transactions

The following custom transactions are added to the default module. These are part of the rules of the blockchain and together they create the MapsMap chain which is used by the frontend.

  • addProblem
  • editProblem
  • deleteProblem
  • addSolution
  • editSolution
  • deleteSolution
  • acceptSolution
  • changeFlag
  • changeRole
  • registerUser
  • editUser

Built With

Share this project:

Updates