Inspiration
In Turkey, the e-commerce landscape is vibrant but highly fragmented. With massive platforms like Trendyol, Hepsiburada, Amazon Turkey, and N11 running simultaneous campaigns, shoppers are forced to constantly jump between apps to compare prices and catch flash sales. In an economy where finding the best price is more important than ever, we realized that consumers were losing both time and money. This inspired the creation of our project: a centralized, smart platform that aggregates all active online shopping campaigns and discounts across Turkey into a single, unified feed.
What it does
How we built it
To make this vision a reality, we adopted a robust, full-stack approach:Data Aggregation: We built custom web scrapers and integrated available APIs using Python (BeautifulSoup and Scrapy) to fetch real-time campaign data from top Turkish e-commerce sites.Backend: We used Node.js with Express to handle incoming data streams and serve it to our frontend seamlessly.Database: MongoDB was chosen for its flexibility in handling various unstructured data formats from different websites.Frontend: We developed the mobile application using React Native, allowing us to deploy a smooth, native-like experience for both iOS and Android users simultaneously.To help users instantly understand the value of a campaign, our backend automatically calculates the true discount percentage using a simple formula:$$\text{Discount} (\%) = \left( \frac{\text{Original Price} - \text{Discounted Price}}{\text{Original Price}} \right) \times 100$$
Challenges we ran into
The most significant hurdle was dealing with the diverse and constantly changing HTML structures of different e-commerce websites. A scraper that worked perfectly on Monday would break on Wednesday because a site updated its UI. Additionally, managing rate limits and avoiding IP blocks while fetching live campaign data required us to implement intelligent task scheduling and proxy rotation.
Another major challenge was data normalization—standardizing categories and campaign tags so that a "Tech Week" sale on one site could be directly compared to a "Gadget Discount" on another.
Accomplishments that we're proud of
What we learned
This project was a massive learning curve in data engineering and system architecture. We learned how to write resilient web scrapers, manage asynchronous cron jobs, and design a scalable NoSQL database schema. On the frontend, we deepened our understanding of mobile UI/UX principles, specifically how to display heavy amounts of image and text data (like product cards) without causing the app to lag.
Most importantly, we learned that building an aggregator isn't just about collecting data; it's about curating it in a way that genuinely improves the user's daily life.