Personal Project · Android
Skatespots
Skatespots is an end-to-end skate spot discovery app that I designed and built across both the backend and Android client. The app gives skaters a way to find nearby spots on a map, create and share spot listings, upload photos, add terrain tags, save favorites, and manage their profile.
I built the backend as a production-ready TypeScript API on Cloudflare Workers with authentication, user profiles, spot CRUD, photo uploads, check-ins, favorites, pagination, validation, ownership rules, and admin tooling. The API supports dev and production environments, D1 migrations, R2-style image workflows, JWT access and refresh tokens, Cloudflare Access-protected admin routes, CI deploy health checks, and a documented request/response contract for mobile clients.
On Android, I built the app using Jetpack Compose, Material 3, Clean Architecture, and an MVI presentation pattern. The project is structured with feature modules for screens, shared core UI components, a pure Kotlin domain layer, and a data layer backed by Retrofit, OkHttp, Room, DataStore, Hilt, Coroutines, and Flow. The Android app connects directly to the Cloudflare-hosted API, with debug and release builds targeting separate backend environments.
The current Android experience includes login/signup, a personalized home screen, searchable spot cards, interactive map discovery, favorites, spot editing, photo management, tags, and profile editing. I’m also planning to build the iOS version soon, using the same backend API and product model.