Skip to content
Radmehr Behzadfar, full-stack developer in Toronto
Radmehr Behzadfar9 Projects

Projects & Case Studies

Case studies with the problem, what I built, and what changed — each one running live.

Index

Nine shipped projects. Pick one, or read them in order.

Project
No.ProjectYear
01HeartByte2025
02This Portfolio & Ideas Board2025
03Hungry Bros2025
04DSA Project Terminal2025
05Android Bookstore ManagerAndroid2025
06Canada & US Payslip Tax CalculatorAndroid2025
07Pizza Ordering Android AppAndroid2025
08Roam To RadmehrAndroid2025
09TaskMasterAndroid2025

01

HeartByte

Campus Health Management

Sept 2025 – Present · Full-stack developer on a five-person team

The problem

Campus health check-ups ran on paper forms and email attachments. Students submitted documents that nurses had to read and re-key by hand, and nobody could tell at a glance who still had an outstanding requirement.

What I built

We built a role-aware platform for students, nurses, and administrators on Node.js, TypeScript, Express, and MongoDB. Access is protected by JWT sessions with multi-factor authentication over email and TOTP, and submitted PDFs and images are parsed by Google Gemini into structured records the staff can review instead of retype.

The outcome

Health records that used to be re-keyed by hand are now extracted, validated, and stored automatically, with role-based access separating what students, nurses, and administrators can see. Deployed on Vercel with MongoDB Atlas.

  • JWT authentication with multi-factor login over both email codes and TOTP authenticator apps
  • Role-based access control separating student, nurse, and administrator permissions
  • Gemini-powered extraction of structured data from uploaded PDFs and images
  • Automated check-up reminders so outstanding requirements surface before deadlines
  • Deployed on Vercel against MongoDB Atlas

Stack

Node.js · TypeScript · Express · MongoDB · JWT · MFA · Gemini AI

Team

Yelda Tiraei · Diba Makki · Ahnaf Abrar Khan · Ashton Miguelle S. Mendoza · Radmehr Behzadfar

02

This Portfolio & Ideas Board

2025 – Present · Sole developer — design, build, deployment, and operations

The problem

A list of links proves nothing. I wanted a portfolio that is itself the strongest piece of evidence in it — a real production application with authentication, user-generated content, moderation, and everything that goes wrong when strangers can post.

What I built

Next.js 14 App Router with server components, Supabase for authentication and PostgreSQL storage, and row-level security on every table. It runs in English, French, and Persian with full right-to-left support, and ships an admin panel for moderating comments, managing users, and queueing transactional email.

The outcome

A live application handling real authentication, rate-limited public writes, comment moderation, and abuse reporting — deployed on a custom domain with automated security headers, structured data, and a passing lint, typecheck, and test suite.

  • Supabase auth with OAuth providers, email confirmation, and TOTP-protected admin access
  • Trilingual interface (English, French, Persian) with right-to-left layout support
  • Moderated ideas board with threaded comments, likes, reporting, and rate limiting
  • Content Security Policy, CSRF protection, and row-level security across every table
  • Admin panel for users, comments, and a queued transactional email pipeline

Stack

Next.js 14 · React · TypeScript · Supabase · PostgreSQL · Tailwind CSS

This Portfolio & Ideas Board running
Screenshot

03

Hungry Bros

College Food Bank App

2025 · Full-stack developer — Seneca WEB422 group project

The problem

A campus food bank has to serve students fairly with limited stock. Without enforced limits, a handful of early requests can empty the inventory before most students get anything.

What I built

A Next.js and Node.js application backed by MongoDB, with JWT-protected routes and role-based access. The cart and checkout flow enforces a monthly quota per student, and an admin dashboard tracks availability as stock moves.

The outcome

Quota enforcement moved from an honour system into the checkout logic itself, so limits hold without staff policing them, and administrators can see remaining availability in real time.

  • JWT-protected routes with registration and role-based access
  • Cart and checkout logic enforcing a monthly quota per student
  • MongoDB persistence with live availability tracking
  • Administrator dashboard for stock and request oversight

Stack

Next.js · Node.js · MongoDB · JWT

Live app

04

DSA Project Terminal

Data Cleaning Pipeline in the Browser

Winter 2025 · Group project of three — I built the terminal

The problem

A course project disappears when the term ends. The repository lives in the college's GitHub organization, so a recruiter cannot open it, and a Python pipeline is not something a link can show.

What I built

A terminal emulator built on xterm.js over a small in-memory file system holding the project's README, task brief, utility module, main script and requirements. `python project.py` replays the pipeline stage by stage — load, clean, organize, extract, save — and writes results.txt, cleaned_data.csv and insights.json into an output folder you can list, read and download. Tab completion and ↑/↓ history behave as they do in a real shell.

The outcome

The project can be explored from any browser tab, without Python, a clone or access to the course organization. Nothing runs on a server: the files are the project's own, and the run is a scripted replay of its stages rather than live execution.

  • xterm.js terminal with a virtual file system: ls, cat, cd, pwd, tab completion and command history
  • python project.py replays the pipeline and creates results.txt, cleaned_data.csv and insights.json
  • download <file> saves any file, including the generated output, through a Blob URL
  • Runs entirely client-side; clear removes the output and reset restores the original files

Stack

TypeScript · Next.js · xterm.js · Python

Team

Radmehr Behzadfar · Nirajan Bist · Sujan Sharma

DSA Project Terminal running
Screenshot

05

Android Bookstore Manager

2025 · Sole developer

The problem

Small bookstore inventory is often tracked in a spreadsheet that only lives on one machine, so stock counts drift out of date the moment anyone is away from the desk.

What I built

A native Android app in Kotlin using Room with DAOs and a repository layer, structured with MVVM so the data layer stays testable independently of the UI.

The outcome

Inventory add, update, delete, and search run on-device against a local database, with unit tests covering the data layer rather than relying on manual clicking.

  • Room persistence with DAOs behind a repository abstraction
  • MVVM architecture separating view models from Android framework code
  • Full CRUD with search across the inventory
  • Unit tests covering repository and view model logic

Stack

Kotlin · Room · MVVM · Android

Screen recording · Android

06

Canada & US Payslip Tax Calculator

2025 · Sole developer

The problem

Gross pay tells you very little. Working out what actually lands in your account means applying bracketed rates and deductions that differ by country and province or state.

What I built

A Kotlin Android app implementing bracketed tax logic for both Canadian and US payroll, recalculating on every input change so the effect of each variable is immediately visible.

The outcome

Take-home pay estimates update live as you adjust gross salary, jurisdiction, and pay period, making the marginal effect of each bracket visible instead of abstract.

  • Bracketed tax calculation covering both Canadian and US payroll rules
  • Real-time recalculation as inputs change
  • Jurisdiction and pay-period selection
  • Clean breakdown of gross, deductions, and net pay

Stack

Kotlin · Android · Tax Calculation

Screen recording · Android

07

Pizza Ordering Android App

2025 · Sole developer

The problem

Ordering flows lose people at the total. If price only appears at the final screen, every topping feels like a risk.

What I built

A Material Design 3 Android app where selections, discounts, and tax all feed a running total that updates as the order is built.

The outcome

The order total stays visible and correct throughout the flow, so the price of each choice is obvious before checkout rather than after it.

  • Live order total with discount and tax calculation
  • Material Design 3 components and theming
  • Size, topping, and quantity configuration
  • State preserved across configuration changes

Stack

Kotlin · Android · Material Design 3

Screen recording · Android

08

Roam To Radmehr

Place Tracker

2025 · Sole developer

The problem

Photos of a place and notes about it end up in separate apps, so the context is lost by the time you want to remember why somewhere mattered.

What I built

A Kotlin Android app integrating the Google Maps SDK with Room persistence, storing notes and image attachments against pinned map locations.

The outcome

Places, notes, and photos live in one record on the map, so revisiting a pin brings back the full context instead of a bare coordinate.

  • Google Maps SDK integration with custom place markers
  • Room persistence for locations, notes, and attachments
  • Image attachment handling with runtime permissions
  • Map and list views over the same underlying data

Stack

Kotlin · Google Maps SDK · Room · Android

Screen recording · Android

09

TaskMaster

Android Task Manager

2025 · Sole developer

The problem

A task list is only useful if the next thing to do is obvious. Flat lists treat a blocking task and a nice-to-have identically.

What I built

A Material Design 3 Android app with priority levels driving list ordering and visual treatment, rendered through RecyclerView with efficient diffing.

The outcome

Priority is expressed in both ordering and visual weight, so the list answers what to do next without being re-read top to bottom.

  • Priority levels driving both sort order and visual hierarchy
  • Full create, edit, and delete flows
  • RecyclerView with efficient list diffing
  • Material Design 3 theming with light and dark support

Stack

Kotlin · Material Design 3 · RecyclerView · Android

Screen recording · Android