Vidilaptopi
Own productIn short
Vidilaptopi is a web app that gathers laptop data from different online shops in Macedonia, processes it into one catalog, and lets you compare prices and specifications. You filter, open a laptop, and compare models side by side. It does not sell anything and asks for no sign-up.
The problem
The same laptop is listed in several shops with different names, specs and prices, in different formats. Comparing them by hand means opening many tabs. Vidilaptopi gathers the offers from the shops, processes them into one common format and keeps them in one catalog so they can be compared in one place.
My role
I built the web app, with help from a friend on the design and part of the code.
What I built
The app, built as described above:
- Browsing with filters across the whole catalog.
- A side-by-side comparison of laptops.
- A detail page for each laptop with its specs and price.
- A scraper for each shop (Neptun, Anhoch, Setec) that gathers that shop's data and turns it into one common format.
- A central catalog service that checks the incoming data, processes it and stores it.
- Admin tools: scraper settings, an overview dashboard and an audit log.
How it is built
The frontend is React 19 with TypeScript, Vite and Material UI.The backend is a set of Java 21 Spring Boot services over PostgreSQL, with the shop scrapers written in Python inside their services.Every service sends events to a separate audit service.It all runs in Docker.
A hard decision, and what I left out
Each shop has its own scraper service. When one shop changes its page layout, only that scraper breaks, and the rest of the site keeps working. I left out accounts, carts and selling on purpose: it is a comparison tool, and it collects no personal data through forms.
Result
Online at vidilaptopi.mk.