Inspiration
As we all know, there are numerous problems here on earth. For example the climate crisis, wars, the energy crisis, etc. to name a few. Therefore we asked our self: "How can we tackle all, or at least most of them?", "What is the basis for all solutions, new inventions and advancements?" We did not just want to solve one issue while neglecting others and because of that we thought of a solution that promotes answers to all sorts of questions and problems. We decided to build an exchange to trade ongoing studies, that will advance humanity by contributing to a solution on various issues on earth.
What it does
ResearchX is a exchange platform to trade ongoing studies. By doing so the organisation working on a study receives funding to complete its work. A researcher at TUM could for example list a new study that answers a question or proposes a solution to a problem. Investors than can invest if they think the researcher can answer the question or find a innovative solution. Until the funding goal is reached the share price for the study drops to reach new investors only willing to pay less than the initial offer. If the funding goal can not be reached everyone looses the money and the funding is cancelled. The money is used to provide the funding for other studies. However if the funding goal is reached investors can trade their shares based on predictions whether the study will succeed or fail. To ensure that there is enough money invested the funding goal is set to a much higher value than the actual money required for the study. After the study has concluded it is determined if the study failed or succeeded. This for example can be done by specifying clear provable goals for each study. If the study fails the remaining money is split between the investors that bet against the study. If the study succeeded the money is split between the investors that bet on the study. This especially helps studies in areas that are not that well researched, because even winners can loose money if they bet on an easy to prove study where there is not enough money from the losers to cover the money needed for the study. The money needed for the study is much lower than the initial funding goal.
How we built it
We split the task to program an exchange and the team into two parts. Two members focused on the backend and the other two on the frontend. The backend is written in GO and uses pq as a sql library and gin, a JSON Api framework. To store data we use a simple PostgresSQL database. We designed the sql tables in a way to be able to provide historical data per user and per study. Therefore we only use append-only tables to store orders and matches between sell and buy orders. For the frontend we used NextJs, Typescript, Tailwind and React.
Challenges we ran into
Because we took part in hackaTUM not only to submit a solution but also to learn new things we decided to use GO for our backend despite no to very little experience in this language. In addition to that we have never used the GO modules pq or gin. Because of that we occasionally got stuck searching for simple questions or reading documentations. Besides that we also ran into conceptual issues with our idea while already working on it. However we always managed to find a solution or slightly change our project idea.
Accomplishments that we're proud of
One thing we are really proud of is all the knowledge we gained by just using a new language and new tools we have never used before. This did slow us down a bit but now we are even more proud on our submission especially because this is our first hackaTUM. We are also really happy with the teamwork can communication in the whole team as well as in the sub teams.
What we learned
Our main takeaway is that you have to drop some ideas to make progress. Nobody can implement every idea in 36 hours. In addition to that we also learned a new programming language and new libraries as mentioned before.
What's next for ResearchX
Next we would like to add more trading options like derivatives or options to for example short a study. This would improve the usability of our trading platform. In addition to that we also need to refine the backend by changing some bad performing code or queries.
Built With
- go
- nextjs
- postgresql
- react
- tailwind
Log in or sign up for Devpost to join the conversation.