<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: UlugbekMuslitdinov</title>
    <description>The latest articles on Forem by UlugbekMuslitdinov (@ulugbekmuslitdinov).</description>
    <link>https://forem.com/ulugbekmuslitdinov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F680808%2F10713699-739f-44dd-a03b-777c4f40c1ae.png</url>
      <title>Forem: UlugbekMuslitdinov</title>
      <link>https://forem.com/ulugbekmuslitdinov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ulugbekmuslitdinov"/>
    <language>en</language>
    <item>
      <title>How I Built 2Flights: A Cross-Platform Flight Tracker with Flutter, Django, and GPT-4o</title>
      <dc:creator>UlugbekMuslitdinov</dc:creator>
      <pubDate>Mon, 25 Aug 2025 02:50:21 +0000</pubDate>
      <link>https://forem.com/ulugbekmuslitdinov/how-i-built-2flights-a-cross-platform-flight-tracker-with-flutter-django-and-gpt-4o-3pi3</link>
      <guid>https://forem.com/ulugbekmuslitdinov/how-i-built-2flights-a-cross-platform-flight-tracker-with-flutter-django-and-gpt-4o-3pi3</guid>
      <description>&lt;p&gt;When App in the Air shut down, travelers lost one of the most popular flight tracking apps. As both a developer and a frequent traveler, I decided to build a cross-platform alternative: 2Flights.&lt;/p&gt;

&lt;p&gt;It’s now live on iOS and Android, with thousands of flights tracked already. In this post, I’ll share the tech stack, the biggest technical challenges, and why I chose certain tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Add flights manually, by forwarding itinerary emails, or importing from Flighty&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get real-time push notifications for delays, gates, and schedule changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Track personal stats (miles flown, airports visited, aircraft types)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compete in a global leaderboard (monthly, yearly, all-time)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enjoy over 250+ high-quality airline liveries, including special editions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-language support (English, Spanish, French, Simplified Chinese, German, Russian, Czech)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;Mobile: Flutter — one codebase for both iOS and Android. I chose Flutter for fast iteration, smooth animations, and consistent UI across platforms.&lt;/p&gt;

&lt;p&gt;Backend: Django — reliable, batteries-included framework with excellent ORM and admin tools.&lt;/p&gt;

&lt;p&gt;Database: PostgreSQL + Redis for caching and background tasks.&lt;/p&gt;

&lt;p&gt;Hosting: AWS (ECS Fargate for containers, RDS for Postgres, CloudFront for CDN).&lt;/p&gt;

&lt;p&gt;Subscriptions: RevenueCat — saved weeks of work for managing in-app purchases and entitlements.&lt;/p&gt;

&lt;p&gt;Notifications: Firebase Cloud Messaging + Apple Push Notification Service.&lt;/p&gt;

&lt;p&gt;AI: ChatGPT (model 4o) — to parse messy booking emails into structured flight data. This replaced brittle regex parsers and gave us more accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Challenges
&lt;/h2&gt;

&lt;p&gt;Parsing itinerary emails&lt;br&gt;
Airlines and booking sites format confirmation emails in completely different ways. Instead of writing hundreds of regex rules, I use GPT-4o to extract structured fields (PNR, flight number, airports, times). This dramatically reduced dev time.&lt;/p&gt;

&lt;p&gt;Scalability&lt;br&gt;
Flight traffic is spiky — most users check flights just before and during trips. AWS Fargate makes it easy to auto-scale containers, and Redis handles burst caching for high-volume notifications.&lt;/p&gt;

&lt;p&gt;Cross-platform polish&lt;br&gt;
Flutter helped, but edge cases (like iOS push background modes vs Android) required platform-specific handling. RevenueCat simplified subscription parity across stores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;Don’t reinvent the wheel for subscriptions and notifications. Tools like RevenueCat and Firebase save enormous time.&lt;/p&gt;

&lt;p&gt;AI is surprisingly effective for parsing semi-structured travel data. It’s not perfect, but it beats regex in flexibility.&lt;/p&gt;

&lt;p&gt;Even niche apps can benefit from community features — the leaderboard has turned out to be more engaging than I expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;I’m working on:&lt;/p&gt;

&lt;p&gt;Deeper statistics (route maps, aircraft type breakdowns)&lt;/p&gt;

&lt;p&gt;More social features&lt;/p&gt;

&lt;p&gt;Expanding our livery library (already at 250+)&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;2Flights is free to download. The free plan lets you track up to 7 flights with real-time alerts. New users get a 7-day trial of the premium “First Class” plan.&lt;/p&gt;

&lt;p&gt;iOS - &lt;a href="https://apps.apple.com/us/app/2flights-live-flight-tracker/id6742110324" rel="noopener noreferrer"&gt;https://apps.apple.com/us/app/2flights-live-flight-tracker/id6742110324&lt;/a&gt;&lt;br&gt;
Android - &lt;a href="https://play.google.com/store/apps/details?id=io.toflights.app" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=io.toflights.app&lt;/a&gt;&lt;br&gt;
Website - &lt;a href="https://2flights.io/" rel="noopener noreferrer"&gt;https://2flights.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🙏 I’d love feedback from this community on any new features&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Telegram bot with Django</title>
      <dc:creator>UlugbekMuslitdinov</dc:creator>
      <pubDate>Thu, 06 Jan 2022 12:23:45 +0000</pubDate>
      <link>https://forem.com/ulugbekmuslitdinov/telegram-bot-with-django-8b2</link>
      <guid>https://forem.com/ulugbekmuslitdinov/telegram-bot-with-django-8b2</guid>
      <description>&lt;p&gt;Hi everyone. Recently I faced a problem with integrating the Telegram bot with Django. At first look, it looks very simple. There are several ways you can connect them. I think most of you will use API to integrate them. But it is a hard way of implementing this. Using this method you will need to open API in Django, make the authorization through REST API, write methods separately for Telegram bot and so more... It is an effective way if you have a simple Django application. But in my project, It would take much more time, because it was a complicated project. So I started looking for a simpler way of implementing it. After surfing the internet for several days and finding several wrong ways of it, I found the right method. And this method made my work much simpler, so I don't need to open the API from Django and write separate methods for the Telegram bot. The bot works directly from the Django server. It turns on when you start the Django server and turns off when you shut the server off. And I want to share this method with you.&lt;/p&gt;

&lt;p&gt;First, you should set a webhook for your bot, so Telegram knows where to send requests for your bot. In this step, you will need a production server set, because the localhost is not reachable for Telegram. If you want to set webhook with your local machine, I recommend you use &lt;a href="https://ngrok.com/"&gt;NGROK&lt;/a&gt;. It allows you to make your local server for public usage. After you configure your production server go to &lt;code&gt;https://api.telegram.org/botYOUR-TOKEN/setWebhook?url=YOUR-URL&lt;/code&gt; . This website should return a response like below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"ok"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Webhook was set"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the webhook is set, just copy the code from my &lt;a href="https://gist.github.com/UlugbekMuslitdinov/023482dcf264785109ea67c1577a8146"&gt;GitHub Gist&lt;/a&gt; and paste it to your Django project. And, of course, write your bot token in the appropriate place.&lt;/p&gt;

&lt;p&gt;I hope you will like this method.&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
      <category>telebot</category>
      <category>telegram</category>
    </item>
    <item>
      <title>GitHub awesome-sources</title>
      <dc:creator>UlugbekMuslitdinov</dc:creator>
      <pubDate>Sat, 07 Aug 2021 09:18:46 +0000</pubDate>
      <link>https://forem.com/ulugbekmuslitdinov/github-awesome-sources-1i30</link>
      <guid>https://forem.com/ulugbekmuslitdinov/github-awesome-sources-1i30</guid>
      <description>&lt;p&gt;Hi everyone. &lt;br&gt;
This is my GitHub repository project: &lt;a href="https://github.com/UlugbekMuslitdinov/awesome-sources"&gt;awesome-sources&lt;/a&gt;&lt;br&gt;
I am self-taught programmer and I know how it is difficult to find free books in the Internet or what to read to learn particular programming language. So I decided to make an open-source project where everyone can upload book they'd suggest other programmers and others can download and read them.&lt;br&gt;
For now there are more than 1GB of books on different programming languages and tools(e.g. Docker or Kubertenes) and this number is increasing day by day. Except books, there are bunch of useful resources, such as websites and other github repositories that are related to the programming.&lt;br&gt;
This project is advancing and I am ready to receive your suggestions and criticism in order to make this project more advanced. Moreover, I want you to make some contribution to this repository and enrich this library of programming books and different sources.&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>books</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
