Smotel
A Flutter app for a smart hotel: book a room, open it with a QR code, and control the lights and AC from your phone.
Case study · Backend developer · December 7, 2021 · 1 min read

Smotel is a Flutter app for a smart hotel. Guests book a room, open its door by scanning a QR code, and control the room's lights and AC from their phone. It was the final project of my internship at PPTIK ITB, built by a team of nine in about five weeks.
The goal
Explore what a hotel app can do as hotels get smarter: booking a room, getting into it, and running it, all from one app.
What I did
I was on the backend team, and wrote most of the commits in the repo (114 of 150).
- Accounts with Firebase. Sign up and sign in with email or Google, and sign out, with form validation and clear error messages.
- App structure in GetX. I moved the app to GetX controllers and routes, replacing the static routing, so sign-in and navigation run through shared controllers.
- Navigation and the room key. The bottom bar with its floating scan button, and the My Scan page that shows the room's QR code.
- The documentation site. A VuePress site on Firebase Hosting that walks through every screen, from sign-in to the AC controls, so the work could be handed over.
In the app
- Booking. Pick a hotel, dates, guests, and a room, then go through payment.
- A QR room key. After booking, the app shows a QR code to scan at the room's door.
- My Room. Light controls (on and off, brightness, color) and AC controls (temperature and mode). These are concept UI: they show how a connected room could work, but aren't wired to real devices.
- Chat and history. A chat with the hotel, past bookings, and notifications.
Built with Flutter and Firebase. The source and the full team are on GitHub, and the docs at smotel-9f156.web.app.