Smart Tourism App Backend
Backend Developer · Oct 2024 — Jul 2025

Overview
This project is the backend engine behind a smart tourism experience: tourists tap NFC tags at monuments to unlock content, book guided experiences, and purchase from an in-app store. I designed and built the entire backend infrastructure, from the API layer down to deployment.
The Problem
The app needed a backend that could reliably identify NFC tag interactions, tie them to specific monuments and content, handle booking flows with real availability constraints, and support in-app purchases — all secured and performant enough for a public-facing mobile app.
The Solution
I built RESTful APIs around three core domains — NFC monument interactions, bookings, and the in-app store — backed by a PostgreSQL schema designed for relational integrity between locations, bookings, and users. JWT-based authentication and authorization protects every endpoint, and the service is containerized with Docker for consistent deployment.
Architecture
Spring Boot service layer with a clean separation between controllers, services, and repositories; PostgreSQL for relational data; Docker for containerization; deployed to Render Cloud with documented CI-friendly build steps.
Challenges & how I solved them
Modeling NFC interactions cleanly
Each tag scan needed to map to monument metadata, content, and (optionally) a booking context. I modeled this as a distinct domain rather than bolting it onto the booking system, which kept both systems easier to reason about independently.
Database performance under relational load
Bookings, monuments, and store transactions all interrelate. I optimized query paths and indexing so common reads (nearby monuments, active bookings) stayed fast as data volume grew.
Key features
NFC monument interactions
APIs that resolve a tag scan into monument content in real time.
Booking system
End-to-end booking flow with availability and confirmation handling.
In-app store
Purchase flow for tourism add-ons and merchandise.
JWT authentication
Stateless auth and authorization across all endpoints.
Cloud deployment
Containerized and deployed to Render with documented architecture and API docs.
Screenshots


Future improvements
- Add caching layer for high-traffic monument lookups
- Support offline-first booking sync for low-connectivity areas
- Expand analytics on tourist interaction patterns
Let's build something reliable together
I'm currently open to Backend, Full-Stack, and PHP Developer roles. If you need someone who cares about clean architecture as much as shipping fast, let's talk.