saranzafar/hotel-book
Simple and efficient mobile app to manage hotel/mess meal subscriptions, clients, and payments. Built with React Native & SQLite.
π¨ Hotel Mess Manager
A mobile-first application designed to simplify meal subscription management for hotels, hostels, and mess facilities. Track clients, manage subscriptions, monitor payments, and stay on top of your businessβall in one place.
β¨ Features
- Client Management β Add, edit, and manage client profiles with contact information
- Meal Subscriptions β Create and manage date-based subscription plans
- Payment Tracking β Monitor paid and pending balances at a glance
- Live Dashboard β Real-time metrics including active subscriptions, revenue, and payment status
- Smart Search β Quickly find clients by name/phone and subscriptions by client name
- Status Filtering β Filter subscriptions by all, active, or expired status
- Offline-First β All data stored locally on your deviceβno internet required
π Quick Start
Prerequisites
- Node.js (v18 or higher)
- npm or yarn
- Android/iOS device or emulator
Installation
-
Clone the repository
git clone https://github.com/saranzafar/hotel-book.git cd hotel-book -
Install dependencies
npm install
-
Start the development server
npx expo start
-
Open on your device
- Scan the QR code with Expo Go app (iOS/Android)
- Or press
afor Android emulator orifor iOS simulator
π± App Structure
hotel-book/
βββ app/
β βββ (tabs)/
β β βββ _layout.tsx # Tab navigation
β β βββ index.tsx # Home dashboard
β β βββ clients.tsx # Client management
β β βββ mess.tsx # Subscription management
β β βββ about.tsx # About screen
β βββ components/
β β βββ AddClientDrawer.tsx
β β βββ EditClientDrawer.tsx
β β βββ AddSubscriptionDrawer.tsx
β β βββ EditSubscriptionDrawer.tsx
β β βββ dashboard/
β βββ _layout.tsx # App initialization
βββ src/
β βββ database/
β βββ db.js # SQLite setup
β βββ queries.js # Database operations
βββ package.json
π― How to Use
Managing Clients
-
Add a Client
- Go to the Clients tab
- Tap the + button
- Fill in name (required) and phone number (required)
- Optional: Add email, address, and notes
- Tap "Add Client"
-
Edit a Client
- Tap any client card
- Update information as needed
- Tap "Save" to confirm
-
Delete a Client
- Tap any client card
- Tap the "Delete" button
- Confirm the action
Managing Subscriptions
-
Add a Subscription
- Go to the Mess tab
- Tap the + button
- Select a client from the dropdown
- Choose start and end dates (automatic day count calculation)
- Enter total amount and amount paid
- Tap "Add Subscription"
-
Edit a Subscription
- Tap any subscription card
- Modify dates, amounts, or active status
- Tap "Save" to confirm
-
Delete a Subscription
- Tap any subscription card
- Tap the "Delete" button
- Confirm the action
Viewing the Dashboard
- Home tab shows key metrics:
- Active subscriptions count
- Total revenue collected
- Pending payment counts
- Subscriptions expiring in the next 7 days
π οΈ Technology Stack
| Tool | Purpose |
|---|---|
| React Native | Cross-platform mobile framework |
| Expo | Development platform and deployment |
| Expo Router | File-based routing |
| SQLite | Local database (no server required) |
| Ionicons | Icon library |
| React Navigation | Screen navigation |
πΎ Database Schema
Tables
- clients β Store client information (name, phone, email, address)
- mess_subscriptions β Track meal subscriptions (dates, amounts, status)
- payments β Record payment history
Data is stored locally in SQLite on your device.
π Privacy & Security
- 100% Offline β No internet connection needed after installation
- Local Storage β All data remains on your device
- No Built-in Encryption β Database encryption is not currently enabled
- No Cloud Sync β Your information stays private and secure
- No Ads or Tracking β Clean, distraction-free experience
π Troubleshooting
App won't start?
# Clear cache and reinstall
npm install
npx expo start -cDate picker not showing?
- Ensure
@react-native-community/datetimepickeris installed - Run
npx expo install @react-native-community/datetimepicker
Database errors?
- Clear Expo cache:
npx expo start --clear - Uninstall and reinstall the app on your device
π License
This project is open-source and available under the MIT License.
π¬ Support
Found a bug or have a suggestion? Feel free to open an issue or reach out.
- Developer: Saran Zafar
- Email: saran.development@example.com
- Phone: +91 XXXXX XXXXX
π Acknowledgments
Built with β€οΈ using React Native and Expo to make hotel and mess management simpler, faster, and more efficient.
Last Updated: Feb 2026
Version: 2.0.0