A comprehensive mobile hospitality ERP system for hotels and guesthouses
Features β’ Tech Stack β’ Getting Started β’ Architecture β’ Screenshots
CheckingCheckout Mobile is a powerful, multi-tenant hospitality management system designed specifically for hotels and guesthouses. Built with React Native and Expo, it provides seamless property management, booking operations, financial tracking, and comprehensive reportingβall from your mobile device.
- Multi-Property Support - Manage multiple locations from a single account
- Real-time Dashboard - Live occupancy rates, revenue metrics, and key statistics
- Smart Location Switching - Seamlessly switch between properties with context preservation
- Advanced Calendar Views - Daily, weekly, and monthly timeline views
- Quick Booking - Streamlined reservation creation with intelligent room suggestions
- Guest Management - Comprehensive guest profiles and booking history
- Status Tracking - Tentative, confirmed, checked-in, checked-out, and cancelled states
- Room Assignments - Visual room allocation with availability indicators
- Income Tracking - Detailed revenue recording with multiple categories
- Expense Management - Track operational costs with receipt uploads
- Account Management - Multi-currency support (LKR, USD, EUR, GBP)
- Commission Tracking - Agent and guide commission calculations
- Payment Processing - Multiple payment method support
- Comprehensive Overview - Real-time financial metrics and KPIs
- Enhanced Financial Reports - Category-wise and timeline-based analysis
- Account Statements - Detailed balance sheets and transaction history
- Commission Reports - Agent performance and payment tracking
- Export Functionality - Generate and share PDF/Excel reports
- Role-Based Permissions - Granular access control per user
- Tenant Isolation - Complete data separation between organizations
- Secure Authentication - JWT-based auth with automatic token refresh
- Owner Bypass - Tenant owners have full access to all features
- Modern UI/UX - Clean, intuitive interface with NativeWind styling
- Floating Tab Navigation - Modern bottom tab bar with rounded corners
- Safe Area Support - Adaptive layout for all device types
- Dark Mode Ready - Comprehensive theming system
- Offline Support - Local caching with sync capabilities
- React Native
0.81.5- Cross-platform mobile framework - Expo SDK
54.0.20- Development platform and tooling - TypeScript
5.3.3- Type-safe development - React Navigation - Bottom tabs and stack navigation
- NativeWind - Tailwind CSS for React Native
- TanStack Query - Data fetching and caching
- Supabase - Backend-as-a-Service platform
- PostgreSQL - Relational database with RLS policies
- Authentication - User management and JWT tokens
- Storage - File uploads and receipt management
- Edge Functions - Serverless API endpoints
- Real-time Subscriptions - Live data updates
- Context API - Global auth and location state
- TanStack Query - Server state management
- React Hooks - Local component state
- Expo Vector Icons (Ionicons) - Icon library
- React Native Gesture Handler - Touch interactions
- React Native Reanimated - Smooth animations
- React Native Safe Area Context - Safe area management
- ESLint - Code linting
- Prettier - Code formatting
- TypeScript - Static type checking
- Metro Bundler - JavaScript bundler
Tenants (Organizations)
βββ Profiles (Users)
β βββ User_permissions (Role-based access)
βββ Locations (Properties)
β βββ Rooms (Inventory)
β β βββ Reservations (Bookings)
β βββ Income (Revenue tracking)
β βββ Expenses (Cost tracking)
β βββ Accounts (Financial accounts)
βββ Guides (Tour guides)
βββ Agents (Booking agents)
tenants- Organization management with trial trackingprofiles- User accounts linked to tenantsuser_permissions- Granular permission matrixlocations- Properties within organizationsrooms- Inventory with dynamic pricingreservations- Complete booking lifecycleincome/expenses- Financial transactionsaccounts- Account balances and statementsguides/agents- Commission tracking
- Row Level Security (RLS) - Database-level tenant isolation
- Foreign Key Constraints - Data integrity enforcement
- Audit Trails - Automatic timestamp tracking
- Secure Functions - RPC functions for complex operations
- Node.js (v18 or higher)
- npm or yarn or bun
- Expo CLI
- iOS Simulator (Mac) or Android Emulator
- Expo Go app (for physical device testing)
-
Clone the repository
git clone https://github.com/RavinduBA/Checking-Checkout-Mobile.git cd my-app -
Install dependencies
npm install # or yarn install # or bun install
-
Set up environment variables
# Create .env file in root directory EXPO_PUBLIC_SUPABASE_URL=your_supabase_url EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key -
Start the development server
npx expo start
-
Run on device/simulator
- Press
ifor iOS simulator - Press
afor Android emulator - Scan QR code with Expo Go app for physical device
- Press
# Development build
npx expo start --dev-client
# Production build for iOS
eas build --platform ios
# Production build for Android
eas build --platform android
# Create APK for testing
eas build -p android --profile previewmy-app/
βββ app/ # App entry points
β βββ _layout.tsx # Root layout
β βββ index.tsx # Main screen
βββ components/ # Reusable components
β βββ accounts/ # Account management
β βββ auth/ # Authentication
β βββ calendar/ # Calendar views
β βββ dashboard/ # Dashboard widgets
β βββ expense/ # Expense tracking
β βββ reports/ # Report components
β βββ reservation/ # Booking management
β βββ settings/ # Settings screens
β βββ ui/ # UI components
βββ contexts/ # Global state
β βββ AuthContext.tsx # Authentication state
β βββ LocationContext.tsx # Location state
βββ hooks/ # Custom React hooks
βββ integrations/ # External services
β βββ supabase/ # Supabase client
βββ utils/ # Utility functions
βββ assets/ # Images and fonts
- Authentication β AuthContext provides user, tenant, subscription
- Location Selection β LocationContext manages active property
- Data Fetching β TanStack Query with Supabase client
- Permission Check β usePermissions hook validates access
- UI Rendering β React Native components with NativeWind styling
Authentication
βββ Login
βββ Onboarding
β
Main App (Bottom Tabs)
βββ Dashboard (Overview)
βββ Calendar (Booking timeline)
βββ Reservations (Booking list)
βββ Expense (Cost tracking)
βββ Reports (Analytics)
βββ Comprehensive
βββ Financial
βββ Accounts
βββ Commission
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Development Team - CheckingCheckout Development Team
- Repository - github.com/RavinduBA/Checking-Checkout-Mobile
For support, please open an issue in the GitHub repository or contact the development team.
Built with β€οΈ using React Native & Expo
β Star us on GitHub β it helps!