Arbitrawin

This was my biggest project so far. It all started with the idea of learning Java for a university exam, but I also wanted to build something useful along the way. The application is designed to find arbitrage betting opportunities by analyzing matches across different betting platforms in my country and displaying the data on a website.

To clarify, arbitrage betting is a way of placing bets that guarantees a profit regardless of the outcome. The key to arbitrage betting is finding the same match on multiple platforms that offer significantly different odds. The easiest way to explain this concept is with an example. Imagine a match between Barcelona and Real Madrid. On the betting platform Bet365, the odds for Barcelona to win are 2.0, while on Betfair, the odds for Real Madrid to win are 2.5. If you bet 100 RSD on Barcelona and 80 RSD on Real Madrid, you will win 200 RSD in either case. That gives you a guaranteed profit of 20 RSD, no matter who wins. However, without software to find suitable matches, it is almost impossible to succeed with arbitrage betting. The reason is simple: every betting platform offers over 20,000 odds that change constantly. Analyzing all of that data manually takes too much time, and speed is essential.

That’s where my application comes in. It’s written in Java and uses web scraping and data analysis techniques. At the beginning, I struggled with web scraping, as it was my first time using Java, building an advanced website, and even hearing about APIs. My first approach was to use Selenium to grab data by targeting CSS classes—but it didn’t work, because the data wasn’t hardcoded in the HTML. I thought waiting a second or two would help, but it didn’t. So I began researching how the platforms fetch their data from databases—and that’s when I discovered APIs. After learning the basics of APIs, I analyzed the requests and found that one API has data for generating others. Once I figured out how it all worked, everything else became easier. I formatted different JSON structures into one unified format and implemented a formula for finding the best arbitrage betting opportunities. That completed the core logic of the project.

The next part of the project was building the website. During this process, I did many things for the first time—adding animations, focusing on user experience, using JavaScript as the main programming language, and creating my first login and registration system. I really put effort into building this site, and I consider it my first real project. It taught me a lot and gave me a strong foundation for learning modern JavaScript frameworks later on.

I am very proud of this project because it proved to me that I can build anything—even when I have no idea how to start. It might take more time, but I always finish what I begin. This project motivated me to keep learning and to build tools that are unique, useful, and crafted with quality in mind.
Visit website

Since the website is intended for a local audience, please use a browser extension for translation, or check out the available videos.

Home page

Login and registration system UI

Arbitrage betting opportunities (Betting platfors are hidden)

Betting platfors are hidden.