Fotovea
Meet Fotovea
Thanks to its unique, sophisticated ranking algorithm powered by AI, utilizing pairwise comparisons between contestants' entries, their work is evaluated in a fair, unbiased way in real time.
Background - what was the idea?
Fotovea is a hub of inclusive, fair and exciting photographical contests, open to all people wanting to share their work, receive feedback and willing to compete.
At the heart of Fotovea is a set of advanced machine learning & artificial intelligence algorithms, designed by Fotovea team experts, that take care of ensuring that each contest is fairly and meaningfully assessed by the audience. This includes matching photos to form pairs to vote on, distributing voting pairs to users, as well as constructing a full ranking of the contest based on partial voting results.
Fotovea helps photography hobbyists nurture their talents through an opportunity to receive helpful feedback from real people, as well as in the ability to monitor their progress and draw inspiration from fellow contestants. What is more, Fotovea takes pride in striving to maintain a peaceful, friendly atmosphere in which mean and derogatory comments are out of place and criticsm is always constructive and polite.
Challenge
We took over development of the platform at an early stage, and our team was in charge of delivering the administrative panel, a REST API for consumption by the mobile app, as well as back-end operation - especially the flow of incoming votes, ranking calculation and management based on the unique Fotovea algorithms, and assigning voting pairs to judges.
Our team worked in co-operation with a Switzerland-based team of Fotovea mobile application & machine learning developers, delivering a custom solution based on Elixir and Erlang/OTP primitives for concurrent processing and caching of votes and rankings, as well as creating an OpenAPI-based interface for the mobile app, and using Phoenix LiveView for the Web UI.
Requirement
The client sought a team of Elixir developers and consultants to help finesse the definition of the voting and ranking system and transform the logic into data structures and processes in Elixir, which had consciously been the project's technology of choice straight from the beginning.
We brainstormed the requirements with the client and helped bring them to life with a custom application written in Elixir, leveraging the language's famous concurrency capabilities and the ease of implementing complex business process using inter-process message passing.
"Curiosum helped us substantially to introduce OTP and caching concepts into out app as well as formulate the increasingly complex API in a concise manner. They played essential role in the development of our product."