MRH ENTERPRISES

Corporate Resource Booking System

An enterprise-grade mobile application for managing shared corporate resources with real-time availability tracking and automated conflict detection.

Use Cases

Employees can browse available corporate resources organized by categories (Rooms, Desks, Equipment, Vehicles), view detailed resource information including capacity, location, and amenities, and check real-time availability through an intuitive hourly time slot grid (8 AM - 5 PM). The system displays busy time slots visually, preventing users from selecting unavailable periods. Users can create bookings by selecting a date and hour slot, with automatic conflict detection ensuring no double-bookings occur. The application provides a personalized dashboard showing upcoming bookings, recent activity, and quick access to frequently used resources. Users can manage their bookings by viewing all reservations, canceling upcoming bookings, and tracking booking status (Upcoming, Completed, Cancelled). Administrators have additional capabilities to manage resources, view user statistics, and access admin panels for comprehensive resource management. Perfect for corporate offices, co-working spaces, event venues, and organizations requiring efficient shared resource allocation with real-time synchronization and mobile accessibility.

Real-time availability checking with visual time slot grid (8 AM - 5 PM)
Automated conflict detection preventing double-bookings
Hourly time slot booking system with instant availability updates
Personalized dashboard with upcoming bookings and quick access

Key Features

  • Real-Time Resource Availability Checking with visual time slot grid
  • Automated Conflict Detection preventing double-bookings
  • Hourly Time Slot Booking System (8 AM - 5 PM) with instant updates
  • Resource Categorization (Rooms, Desks, Equipment, Vehicles)
  • Booking Management with create, view, and cancel operations
  • Personalized Dashboard with upcoming bookings and quick access
  • Role-Based Access Control (User/Admin) with Firebase Authentication
  • Multi-Language Support (English, Polish, Spanish)
  • Dark Mode with system preference detection
  • Real-Time Synchronization using Firestore listeners
  • Booking Status Tracking (Upcoming, Completed, Cancelled)
  • Resource Details with capacity, location, and amenities
  • Search and Filter functionality for resources
  • Admin Panel for resource management and user statistics
  • Responsive Web Deployment with mobile-first design

Architecture

Built with a mobile-first architecture using React Native (Expo SDK 54) for cross-platform development, enabling native iOS, Android, and web deployment from a single codebase. The application follows a component-based structure with React Navigation for stack and tab navigation, implementing context-based state management (AuthContext, ThemeContext, LanguageContext) for global application state. The backend leverages Firebase Firestore for real-time document storage with optimized queries using composite indexes, Firebase Authentication for secure user management with role-based access control, and Firestore Security Rules for comprehensive data protection. The frontend uses React Native components with Expo modules (BlurView, LinearGradient, DateTimePicker) for native mobile experiences, while React Native Web enables seamless web deployment. The architecture implements real-time listeners (onSnapshot) for live booking updates, automated conflict detection through Firestore queries, and efficient data fetching with proper indexing. The design system uses custom theme tokens (colors, typography, spacing) with dark mode support, and the application includes internationalization (i18n) with support for multiple languages. This architecture enables scalable resource management, real-time synchronization across all clients, and supports future features like push notifications and calendar integration.

Cross-platform React Native (Expo) architecture for iOS, Android, and Web
Real-time Firestore synchronization with optimized composite indexes
Context-based state management for authentication, theme, and language
Component-based UI with React Navigation and Expo modules

Security & Performance

Security is implemented through Firebase Authentication with email/password authentication, JWT-based session management, and role-based access control (User/Admin) with Firestore Security Rules ensuring users can only access and modify their own bookings while admins have full resource management capabilities. The system includes comprehensive Firestore Rules validation preventing unauthorized data access, ensuring booking creation requires authenticated users, and allowing booking cancellation only by the owner or administrators. Error handling includes user-friendly error messages for authentication failures, network errors, and booking conflicts. Performance is optimized through Firestore composite indexes for efficient queries combining userId and startTime filters, enabling fast booking retrieval even with large datasets. The application implements real-time listeners with proper cleanup to prevent memory leaks, uses efficient data structures for time slot calculations, and implements client-side conflict detection before server submission to reduce unnecessary API calls. The mobile-first design ensures optimal performance on native devices with smooth animations using React Native Reanimated, while web deployment uses React Native Web for consistent behavior across platforms. The system handles timezone conversions properly, implements efficient date/time parsing, and uses memoization for expensive calculations.

Firebase Authentication with role-based access control (User/Admin)
Comprehensive Firestore Security Rules for data protection
Optimized Firestore queries with composite indexes for performance
Real-time synchronization with efficient listener management

Development & Deployment

The application is built using Expo SDK 54 with React Native 0.81.5, enabling development across iOS, Android, and web platforms from a single codebase. Development workflow uses Expo CLI for local development with hot reloading, Expo Go for mobile testing, and web support for browser-based development. The codebase follows React Native best practices with functional components, React Hooks for state management, and proper component lifecycle management. The frontend is structured with a modular architecture separating components, screens, navigation, services, and context providers. The application includes comprehensive internationalization (i18n) with support for English, Polish, and Spanish, implemented through a LanguageContext with translation functions. The design system uses custom theme tokens with dark mode support, implemented through ThemeContext with system preference detection. For production deployment, the web version is built using Expo export with static file generation, served through an Express.js server for Railway deployment. The deployment uses Railway's Railpack builder for automated builds, with environment-based configuration for Firebase credentials. The application supports responsive design with a fixed mobile resolution (390x844px) for consistent web experience, and includes proper error boundaries and loading states throughout the user interface. The entire system supports automated CI/CD through Railway with GitHub integration, enabling automatic deployments on code pushes.

Expo SDK 54 for cross-platform development (iOS, Android, Web)
Railway deployment with Railpack builder and Express.js server
Multi-language internationalization (English, Polish, Spanish)
Automated CI/CD with Railway and GitHub integration

Tech Stack

Frontend

React NativeExpoReactJavaScriptReact NavigationReact Native ReanimatedReact Native WebExpo BlurExpo Linear Gradient

Backend

FirebaseFirestoreFirebase AuthenticationFirestore Security Rules

DevOps

Express.jsNode.jsRailwayRailpackGit

Live Demo

Launch an interactive demo of this system environment.

Launch Demo