About Experience Work Learn Contact
Case study

Iranzamin

A full-stack tourism guide for Iran's historic cities — designed and built entirely on my own, front-end to back-end.

RoleDesign, front-end, back-end
TypePersonal project
StackIonic · NestJS · PostgreSQL
LanguagesEnglish & Persian

Overview

A NestJS + PostgreSQL API sits behind a fully custom interface built around a design system inspired by Achaemenid art and ancient Iran. Visitors can plan car and pedestrian routes, explore on site with an AR view, and read place details with reviews and ratings. The home screen has light and dark modes, and an admin console handles places, submissions and comment moderation.

NestJSPostgreSQLIonicAR NavigatorOSRM RoutingAchaemenid Design System32 e2e TestsDocker

Architecture

API

NestJS + PostgreSQL, covered by 32 e2e tests.

App

Ionic with a fully custom, hand-drawn interface.

Maps & routing

OSRM routing for cars and pedestrians, plus an AR navigator.

Admin

A console for places, submissions and comment moderation.

Highlights

A fully hand-drawn UI — no default Ionic components

Every screen is custom-built around one design system instead of stock components.

A design system inspired by Achaemenid art

Lotus-inscription borders, Persepolis step patterns, rosette-shaped ratings and iwan-arch imagery.

Route planning for cars and pedestrians

Routing is powered by OSRM, with separate car and walking modes.

An AR view for on-site exploration

An AR navigator helps visitors explore places while they're standing there.

Place details with reviews and ratings

Each place has its own page with reviews and rosette-shaped ratings.

Bilingual from the start, light and dark

The whole app works in English and Persian, and the home screen has light and dark modes.

A full admin console

Manage places, review submissions and moderate comments.

Backed by 32 end-to-end tests

The API is covered by 32 e2e tests, and the stack runs in Docker.