Projects LessonLynx Mobile bachelor's thesis

LessonLynx Mobile

The first version of LessonLynx, and the app I wrote my bachelor's thesis about.

Bachelor's thesis · grade 10Mobile app · v1Singidunum University
Role
Solo: design, code, the thesis
Started as
A university exam project
Stack
React Native, Expo, Firebase
Thesis
Defended Sept 2026, 10/10
LessonLynx Mobile dashboard with yearly totals (demo numbers)

The thesis

Razvoj LessonLynx, aplikacije za administraciju nastave stranog jezika

Development of LessonLynx, an Application for Managing Foreign Language Tuition

Programme
Software & Information Engineering
Defended
Sept 2026, Belgrade
Grade
10 / 10
Mentor
Prof. Dr. Miodrag Zivkovic

How it started

I needed a better way to track my ESL lessons than a spreadsheet. I first built it as a mobile app for a university exam, and it turned into the subject of my thesis.

Tutors who go independent suddenly run a small business: besides teaching, they track lessons, unpaid balances and income, often in several currencies. The thesis asked how a simple mobile app could replace the spreadsheet.

The thesis in short

Independent ESL teachers have to run their own admin: lessons, who owes what, and monthly income, often in more than one currency. Spreadsheets get messy fast as the number of students grows.

This thesis presents LessonLynx, a mobile app built with React Native (Expo), TypeScript and Firebase that brings students, lessons, payments and earnings into one place. Payments are applied to the oldest unpaid lessons automatically, changes sync in real time, and a live exchange-rate API converts earnings between currencies.

The thesis covers requirements, system design, implementation by module and testing. I use the app in my own teaching, and it saves me about four to five hours a week.

Chapters:1 · Technologies2 · Analysis & design3 · Implementation4 · Testing

The app

React Native · Expo · TypeScript · Firebase · ExchangeRate-API
StudentsEveryone in one listEach student with their rate, currency and contact details, and who is paid up at a glance.
LessonsPrice fills itself inPick 25, 50 or 75 minutes and the price is suggested from the student's rate, in USD, HKD, EUR or RSD.
PaymentsOldest lessons paid firstRecord a payment and it pays off the oldest unpaid lessons automatically (first in, first out).
DashboardIncome at a glanceMonthly earnings chart, revenue by student, and live exchange rates.

What it taught me

What I learned

  • Real-time sync makes an app feel alive: change a lesson and every screen updates at once.
  • Copying data like totals and names into each record made lists fast, but every copy has to be kept in sync.
  • Money logic needs one source of truth. Updating two places without a transaction can leave them out of step.

The thesis's "future work" became the web app

The thesis ended with a list of next steps. The web version built them.
  • ✓A weekly schedule view
  • ✓Invoices generated from unpaid lessons
  • ✓Cancellation rate per student
  • ✓A heatmap of my teaching load
What came next · v2LessonLynx, rebuilt for the webLive, with about 20 tutors using it. Read the full case study.Read case study

Like what you see?

I'm looking for my first role as a junior full-stack or backend developer, remote or in Belgrade. Let's talk.