Product founders can create a project with a description, divide the project into tasks, assign QPT for each task completed, and find and manage teams

Qravity
A blockchain-based platform for creating and distributing monetizable digital products
The idea behind Qravity
Personal experience is what plants ideas for great projects. That’s what happened to Qravity CEO David Brandstätter . As a composer and producer with experience in film distribution, David had a deep understanding of the needs, wants, and demands of people who create, distribute, and consume digital media content.
Based on his experience, David came up with an idea for a platform that would be a multi-tool of digital media production. With this idea in mind, he contacted Steelkiwi and asked us to develop an online collaboration platform for creating music, games, animated movies, and other digital entertainment products. Eventually, his idea blossomed into a platform not only for creation and collaboration in digital entertainment but also for monetization and distribution.Solution
We built a decentralized content production and distribution platform based on the Ethereum blockchain. To secure funding for this suddenly much grander project, the Qravity team decided to hold an initial coin offering (ICO). So David also tasked Steelkiwi with designing and developing a landing page for the Qravity ICO.


The Qravity platform
Qravity is a content production and distribution platform that’s built on blockchain technology and integrates with project management tools for team collaboration.
Qravity ensures fair payment to project founders and content creators for their contributions. The platform uses a smart contract utility token called the Qravity QPT to track tasks and record project stakes held by each team member. Qravity QCO is the platform’s main currency. QCO can be used to license and purchase content. It can also be traded for other blockchain tokens through a cryptocurrency exchange.
User Roles


Content creators can complete tasks and get paid for them

Distributors can purchase digital content through pre-sales agreements, pre-financing, and obtaining distribution rights

Consumers can purchase content on Qravity

The administrator can manage all users on the platform
Implemented features
When signing up for Qravity, users create personal profiles by choosing an account type, entering their personal information, and creating a password. To better protect the platform’s resources and users’ credentials, we implemented two-factor authentication (2FA): users also have to provide a copy of a valid photo identification document to verify themselves. Qravity uses a third-party ID verification service called Jumio to complete this step.
The platform also provides users with tips and instructions on how to use Qravity, start a project, and create a task, and offers tips on allocating QPT.
Project founders can create a project. They then define their project expectations, add a description, divide the project into tasks, and assign a team member to each task. At any time during project development, founders can create more tasks.
Content creators can search for a project by type (app, audio book, digital production, documentary, feature film, game, music) and sort the results by newest, oldest, most popular, and least popular. They can browse available projects and see their descriptions alongside their creation dates, open tasks with statuses and assignees, closed tasks, members, available QPT, and awarded QPT.
Qravity provides project management tools so content creators can log time spent on a task and project founders can monitor the progress of each task.
Once a content creator completes a task, the project founder reviews the results. If a deliverable is accepted, the content creator is awarded QPT in the amount specified in the task description. If the project founder rejects a deliverable, they give feedback on what should be changed.
Qravity generates revenue from:
Consumer purchases of content produced on and distributed through Qravity using QCO tokens.
Distributors. For this, the platform uses traditional B2B transactions.
If you’re interested in more information on how Qravity generates revenue, read the white paper.

The Qravity ICO
We created a landing page to tell prospective users about what Qravity is and about its ICO campaign. The Qravity ICO page conveys a lot of information about Qravity so users can get a full picture of how the platform works. We included the Qravity teams’ white paper, which gives an overview of the intended use of Qravity and plans and expectations for future development. We also added social media buttons to the Qravity ICO page to enable users to quickly navigate to Qravity social media pages. Also, users can message Qravity representatives from the landing page in real time and sign up for the Qravity newsletter to get the latest news and updates.
Results

The Qravity ICO page helped to raise funds and serves as a landing page for the main platform. We achieved two goals with the UI/UX design for this page: 1) offered a user-friendly process for purchasing QCO, the platform’s cryptocurrency, and 2) presented valuable information about the Qravity platform in a clean and concise manner.Like the platform itself, the Qravity ICO page is space themed, which aligns with the overall idea of continuous creation.
We divided the Qravity ICO page into several main blocks. The first and arguably most important block is dedicated to purchasing QCO. It points to a sign-up page where users can enter their personal information and transfer Ether to their Qravity wallet. The other sections are purely informational, displaying benefits and features of the Qravity platform, testimonials and ratings from media outlets, the project roadmap, and bios of the entire Qravity team, including our Steelkiwi developers.

We developed the backend for the Qravity ICO page with Python, Django, and a PostgreSQL database, the combination of which offers a great scalable solution for all kinds of web projects. We also integrated Celery, an asynchronous task queue, in combination with Redis, a solution for distributed key-value storage. We used Django CMS, which is a comfortable content management system, to allow Qravity’s content managers to add and update information on the page. To implement a RESTful API, we used the Django REST framework.
To implement our part of the online wallet functionality, we used Web3.py. In particular, Web3.py is used to call smart contract methods from the blockchain to check the status of QCO bonuses available at the QCO sale stage and to figure out whether a particular user is eligible for the Qravity ICO whitelist.
We used AIOHTTP to implement a parallel microservice with several WebSockets that listens for updates from the blockchain about successful whitelisting as well as with smart contracts for successfully sending purchased QCO to users’ wallets. Depending on the update, the microservice changes the user’s status, which, among other things, helps them proceed with the registration process.

To develop the frontend for the Qravity ICO page, we went with a trusted combination of technologies. We used HTML5 for page markup, CSS3 for design, and JavaScript complying with the ES6 standard for interactivity. To simplify development, we used Stylus, a feature-rich CSS extension, Gulp.js, a JavaScript task runner, and Babel, a tool for converting ES6 code into backwards-compatible JavaScript for older browsers and environments.

Ethereum node synchronization. Nodes run Ethereum software and serve as peers on the blockchain network. Until a node downloads the entire blockchain from other users and examines all registered transactions — which is what synchronization is — it’s not going to work properly. To solve this problem, we tried two different third-party applications. First we went with Gerth, a command-line interface for running Ethereum nodes, but it didn’t work for our case no matter how hard we tried. So we decided to use Parity, another Ethereum client. Parity worked perfectly and helped us properly synchronize nodes.
System resources. Ethereum nodes require a lot of computing power to work properly. To understand how many system resources the Qravity ICO page needed, we performed manual calibration. In other words, we launched a virtual machine on the server, checked whether it offered sufficient resources, stopped the machine if it didn’t, then reconfigured the instance and launched it again. We repeated these steps several times to make sure that the virtual machine offered enough computing power for development and maintenance of the Qravity ICO.
Distributed denial of service (DDoS) attacks. DDoS attacks are surprisingly common and can be quite devastating. Their goal is to break an application by flooding it with a huge number of fake requests. One way to deal with these requests is to monitor traffic and filter out requests from bots, but this approach is difficult to implement and might not be the most affordable option for products in the MVP stage. When we first encountered a DDoS attack on the Qravity ICO page, we decided to change the entire project architecture hosted by AWS, then implemented a semi-manual protection system. Basically, whenever we notice a DDoS attack attempt, we tighten the rules around accepting requests, prohibiting the fake requests from being accepted and stopping the attack before it has a chance to be carried out.
Implemented features
By registering on the Qravity ICO page, users unlock the ability to purchase QCO. The registration process is rather complex and includes not only filling out personal information but also whitelisting browser wallets, which is required to make sure that the user purchasing QCO has a clean record and isn’t going to harm the platform.
The Qravity ICO page is also a landing page to educate users on the benefits and features of the Qravity platform. To make sure that information is not only accessible but is presented in an entertaining and unobtrusive way, we implemented a variety of sliders and animations with CSS and Slick.js.
For a developing project, it’s vital to keep users up to date on changes. Otherwise, people might think that the project has been cancelled or that it’s stagnating, or they might simply forget about it. In order to help the Qravity team be on the same page as their users, we implemented a newsletter sign-up feature.
Technology Stack






Client's feedback
The company has launched the product's landing page with great success. SteelKiwi delivers tasks on time, devises clever solutions to complex issues, and makes contact throughout the project to keep everyone updated. They have pared down their communication strategy to streamline the process.
