ES

HabitFlow

Ecosystem to track personal habits and expenses: hybrid app for iOS and Android with Firebase, a Telegram bot, a Next.js landing page and a serverless REST API on AWS.

The challenge

Keep the day's habits and expenses in one place, from the phone or from Telegram.

Type
Personal project
Status
Finished, updated in March 2026
Areas
Mobile, Backend, Cloud
Technologies
  • Ionic 8
  • Angular 20
  • Capacitor 8
  • Firebase Auth
  • Firestore
  • Chart.js
  • AWS Lambda (Python)
  • API Gateway
  • DynamoDB
  • AWS SAM
  • python-telegram-bot
  • Next.js 14

Interactive demo

Screenshots

From the project's real code. The ones marked as sample data use simulated data instead of the backend or real video.

Three HabitFlow app screens: home with today's progress and a weekly chart, habit list with streaks, and monthly expenses by category
The Ionic app: home, habits with streaks and expenses by category Sample data
HabitFlow landing page in Next.js with a mock-up of the mobile app showing habits and streaks
Landing page in Next.js, published on Vercel

What it does

  • App with habits and streaks, expenses by category, a dashboard and charts
  • Login with Firebase Auth and data in Firestore, synced in real time
  • Python Telegram bot that reads and writes the same Firestore: log habits, see stats and get reminders
  • Separate serverless REST API with Lambda, DynamoDB and API Gateway
  • API infrastructure as code with AWS SAM

What I learned

  • Real-time data with Firestore and RxJS in Angular
  • Serverless on AWS: Lambda, API Gateway, DynamoDB and CloudWatch
  • Input validation and sanitisation in the backend
  • Publishing a hybrid app with Capacitor

The AWS backend is no longer deployed because the account ended; the landing page is still live on Vercel. The app screenshots come from its real code with sample data instead of Firebase. In the demo, the habits, the writes and the bot messages are simulated.

Technical decisions

Firebase Auth and Firestore
Real-time data without running a server, and the same database for the app and the bot.
Ionic with Capacitor
A single codebase for iOS, Android and web.
Telegram bot
Log a habit in seconds without opening the app.
Separate API on Lambda with API Gateway
To practise serverless on AWS: Python functions, input validation and Firebase token verification.
Infrastructure as code with SAM
The API is deployed from a template, with nothing configured by hand.

How it's built

Click each piece to see what it does.

Ionic app

Angular 20 with Capacitor for iOS and Android. Dashboard with Chart.js charts and dark mode.