I’m from Kashmir.
When I first joined college, travelling home during holidays usually meant flights.
Quick. Comfortable. Easy.
My college — Chandigarh University — is far from home, so flights just made sense.
Life was simple.
Until winter came.
During winters, my parents shifted to Jammu.
Flights weren’t convenient anymore.
So I started travelling by bus.
Sleeper buses.
Long overnight journeys.
Cold windows.
Half sleep.
And that’s where the problem started.
When going home, Jammu was the last stop.
I could sleep peacefully.
But while coming back to college…
I had to get down before Chandigarh.
Which meant only one thing:
If I slept…
I might miss my stop.
Every single trip looked like this:
Wake up.
Check location.
Sleep.
Wake up again.
“Did my stop come?”
Repeat. All night.
I couldn’t sleep peacefully even for 10 minutes.
Not because the bus was uncomfortable.
But because of one constant fear:
What if I miss my stop?
So like any normal person…
I opened the Play Store and searched:
👉 “Wake me up when I reach this location”
Sounds simple, right?
Apparently not.
Nothing felt dependable.
At that time, I was just a fresher.
Didn’t know mobile dev.
Didn’t know React Native.
Didn’t know how apps even worked.
So I thought:
“Maybe this is too hard to build.”
And I dropped the idea.
đź’ˇ The Turning Point
Fast forward 2 years.
I started learning seriously:
Full-stack development
React
APIs
Databases
System design
React Native
One day it suddenly clicked:
“Wait… why am I still searching for an app when I can just build it myself?”
So I did.
That’s how Travel Alarm was born.
🚀 Building “Travel Alarm”
Sometimes the best projects don’t start with hackathons or assignments.
They start with small, annoying real-life problems.
This one started on a winter bus ride home.
🛠️ What is Travel Alarm?
Travel Alarm is a GPS-based smart alarm app that:
âś… Tracks your live location
âś… Lets you select destination on a map
âś… Set alert radius (0.5 km / 1 km etc.)
âś… Runs in background
âś… Rings even when phone is locked
âś… Vibrates continuously
✅ Shows “Stop Alarm” notification
âś… Works offline
In short:
👉 Sleep peacefully
👉 Phone wakes you automatically
Exactly what I always needed.
⚙️ Tech Stack I Used
Built completely solo using:
React Native (Expo)
expo-location
expo-notifications
expo-av
react-native-maps
AsyncStorage
EAS Build
đź§ Architecture Decisions (Biggest Learning)
Initially, I made a classic beginner mistake.
I put all logic inside screens.
Result?
❌ bugs
❌ duplicate code
❌ alarm issues
❌ messy debugging
So I refactored everything.
Final Clean Architecture
Screens → UI only
Services → logic only
TrackingService → GPS + distance + trigger
AlarmService → sound + vibration + notifications
Utils → calculations
Now:
Screens just render.
Services do the brain work.
This made the app:
âś… predictable
âś… scalable
âś… easier to debug
âś… production-ready
Honestly, this refactor taught me more than weeks of tutorials.
🔥 Challenges I Faced
This wasn’t “just React Native”.
Real mobile apps are tricky.
I had to solve:
📍 Background location tracking
đź”” Alarm + notifications
🔋 Battery optimization issues
📦 Production APK builds with EAS
Each problem forced me to level up.
That’s where the real growth happened.
🎯 The Best Moment
After finishing the app…
I installed the APK.
Boarded a real bus.
Set my destination.
Slept peacefully.
And then…
🚨 Alarm rang exactly at my stop.
Not early.
Not late.
Exactly.
That moment felt different.
Not because the code worked.
But because:
I built something that solved my own real-life problem.
That’s when I stopped feeling like a student…
and started feeling like a developer.
📚 What This Project Taught Me
Solve real problems, not tutorial apps
Architecture matters
Shipping > perfection
Real-world projects teach the most
đź”— Check it out
GitHub Repo: https://github.com/git-faizan-cse/travel-alarm-app
APK Build: https://github.com/git-faizan-cse/travel-alarm-app/releases/tag/v1.0.0
Open to feedback, suggestions, and opportunities 🙌
❤️ Final Thought
Honestly, this project feels special.
Not because it’s complex —
but because it solves a real problem from my own life.
And that hits different.
Open to feedback, suggestions, and opportunities 🙂
— Faizan
