← Back to projects
Web product

Loter

A web platform focused on discovering and tracking the best flight deals across multiple destinations. It integrates external APIs to continuously collect large volumes of flight data, which are then processed and filtered using a custom scoring algorithm. The system evaluates deals based on price, seasonality, route quality and airline, allowing only the most valuable offers to be presented. Users can explore deals through interactive calendar views enriched with contextual data such as weather and local events. The platform also includes a personalized notification system that alerts users when relevant deals appear based on their preferences. Overall, Loter combines backend automation with user-focused features to create a smarter way of browsing flight opportunities.

Python Python Django Django JavaScript JavaScript PostgreSQL PostgreSQL Docker Docker Redis Redis nginx nginx Celery Celery DigitalOcean DigitalOcean GitHub GitHub
Loter

Technical case studies

Examples of product logic, backend architecture and implementation detail inside this project.

Data pipeline

Automated flight data ingestion and deal scoring engine

Problem

Flight deal platforms depend on large volumes of external API data that change frequently and contain a lot of noise. Raw Skyscanner responses include thousands of price combinations, but most of them are not meaningful deals. The challenge was to continuously fetch fresh data, process it efficiently and identify only the most valuable offers based on multiple factors such as price, seasonality, route quality and airline.

Solution

We built a background processing pipeline using Celery that fetches flight data from the Skyscanner API at regular intervals. The system analyzes incoming data against internally defined thresholds for destinations and departure regions, and evaluates each connection using a custom scoring algorithm. This algorithm takes into account price levels, travel season, number of transfers, destination attractiveness and airline quality. The result is a continuously updated stream of curated flight deals, filtered and ranked automatically.

Stack
Django, Celery, Redis, PostgreSQL, external API integration
Automated flight data ingestion and deal scoring engine
Notifications system

Personalized flight alerts based on user preferences

Problem

Users want to be notified when relevant flight deals appear, but defining “relevant” is complex. Preferences can include multiple departure locations, destinations, date ranges and budget constraints. Supporting flexible combinations such as cities, regions and countries — on both departure and destination sides — requires advanced form handling and efficient matching against continuously changing flight data.

Solution

We built a notification system that allows users to define detailed travel preferences through a custom form supporting multiple geographic levels (cities, regions, countries). These preferences are matched against incoming flight data processed in the background. When a suitable deal is detected, the system triggers automated email notifications using Celery tasks. This enables fully personalized, real-time alerts without impacting application performance.

Stack
Django, Celery, Redis, PostgreSQL, background email processing
Personalized flight alerts based on user preferences
Product innovation

Flight search results are often difficult to interpret, especially when multiple date combinations are involved. Users need more than raw prices — they need context to decide when to travel, including

Problem

Flight search results are often difficult to interpret, especially when multiple date combinations are involved. Users need more than raw prices — they need context to decide when to travel, including weather conditions and local events. Presenting this information in a clear and actionable way, while keeping data up to date, is a non-trivial product and technical challenge.

Solution

We designed a custom deal presentation layer based on calendar views, where users can explore available travel dates enriched with additional context. Each period includes summarized weather conditions and information about local events, helping users make better travel decisions. The system is refreshed daily to ensure that presented date combinations remain valid and relevant. This creates a more intuitive and informative browsing experience compared to traditional flight search interfaces.

Stack
Django, JavaScript, data aggregation, dynamic UI rendering
Flight search results are often difficult to interpret, especially when multiple date combinations are involved. Users need more than raw prices — they need context to decide when to travel, including
User features

Personal flight tracking, stats and travel history system

Problem

Users often want to keep track of their past and planned trips, but most flight tools focus only on booking rather than long-term tracking. Building a system that allows users to store flights, organize them and extract meaningful insights requires structured data handling, aggregation and visual representation.

Solution

We implemented a system that allows users to add and manage their flights through structured forms. Based on this data, the platform generates lists, statistics, rankings and map visualizations, turning individual trips into a broader travel history. This transforms the product from a simple deal finder into a personal travel tracking tool that users can return to over time.

Stack
Django, PostgreSQL, user data modeling, statistics and map visualization
Personal flight tracking, stats and travel history system

Need something similar?

Let’s talk about your product, workflow or integration

We build custom products with real backend logic, API integrations, automation and production-ready deployment. If your project needs more than a simple website, we should talk.