Background
The client is a company bringing the latest advancements in technology to the real estate industry. Their main product is a web-application featuring an implementation of their blockchain protocol. The web-application is a system for recording real estate rights on a decentralized, open blockchain network.
Objective
The client needed to develop an Ethereum prototype for storing data on real estate/land plots (geo-coordinates, name, owner, value, photographs, and documents) and managing this data (for example, transferring property when paying with Ether). This was necessary to test if such a project is viable, and also to check the cost of such transactions on Ethereum.
They hired us to do both design and development, including technical architecture and deployment.

Process
To work with smart contracts, we chose to use Truffle and ZeppelinOS since they greatly simplify the work with contract deployment and migrations on Ethereum. For the frontend of the app, we used React — it’s simple and powerful — while for the backend, we used Express, a Node.js application framework.
Smart contracts were upload to the Ropsten test network, while for storing files like documents and photos, we used IPFS.
IPFS is a peer-to-peer network for storing and sharing data. We chose to use it because the technology has great potential and allows you to store data in a distributed way. The estimated time for the functionality that the customer wanted was about 3-4 months, so the development of the project was carried out in two-week sprints.
At the end of each sprint, we communicated with the client through a conference call, set goals for the next sprint, and presented demos of the new features.

Altogether, we developed the following features:
- Authorization on the site with MetaMask.
- Possibility to upload real estate and owner data to Ethereum through the website.
- Registry index that displays all the plots/real estate uploaded to Ethereum.
- Event-driven transaction explorer (for example, for checking when someone uploaded property data or sold their property using the system).

At that time, there were no similar projects of this scale on the market. We managed to create a full stack prototype for a large-scale, distributed app that works stably and reliably.
Technologies
Frontend: React
Backend: Express
Smart contracts: Truffle, ZeppelinOS, Ethereum
Database: PostgreSQL
Deployment: AWS
Results
The client received a working prototype on time. In addition, all the change requests of the client were taken into account during development. The prototype enabled the client to fulfill their goals, including finding out the transaction costs for such a project.