A native iOS application for door access management with QR code scanning, real-time messaging, and admin dashboard.
- Native iOS App: React Native application optimized for iOS
- QR Code Scanner: Scan door QR codes for access management
- Door Access Management: Easy-to-use interface for managing door access
- In-App Messaging: Real-time chat between users and administrators
- Admin Dashboard: Comprehensive dashboard for managing access and users
- Role Management: Switch between user and admin modes
- Local Database: SQLite database for offline functionality
- Push Notifications: Real-time notifications for access updates
- Status Management: Track access status (granted, denied, pending, expired)
- Search and Filter: Advanced search and filtering capabilities
- iOS Native Features: Face ID/Touch ID, iOS share sheet, haptic feedback
- Biometric Authentication: Secure login with Face ID/Touch ID
- React Native 0.80.0 - Cross-platform mobile framework
- React Navigation 7 - Navigation and routing
- React Native Paper - Material Design components
- Firebase - Authentication and real-time database
- AsyncStorage - Local data persistence
- React Native Vector Icons - Icon library
- Socket.io - Real-time communication
- React Native Biometrics - Biometric authentication
- Node.js/Express - RESTful API server
- SQLite - Database storage
- JWT - Authentication and authorization
- WebSocket - Real-time communication
- LoggingService - Structured logging with context and error tracking
- Development/Production - Different logging levels for different environments
- Error Tracking - Automatic error logging with stack traces
- Metro - JavaScript bundler
- Xcode - iOS development IDE
- CocoaPods - iOS dependency management
- TypeScript - Type safety
- Node.js (v18 or higher)
- npm or yarn
- Xcode (latest version)
- iOS Simulator or physical iOS device
- CocoaPods
-
Clone the repository
git clone <repository-url> cd gaterlink
-
Navigate to the app directory
cd GaterLinkApp -
Install dependencies
npm install cd ios && pod install && cd ..
-
Set up environment
cp ../env.example .env # Edit .env with your configuration -
Start the backend server
cd ../server npm install npm start -
Run on iOS
# Start Metro bundler npm start # In another terminal, run on iOS simulator npm run ios # Or run on physical device npm run ios -- --device # For clean builds npm run ios:clean # For release builds npm run ios:build
npm start- Start Metro bundlernpm run ios- Run on iOS simulatornpm run ios:clean- Clean build and run on iOSnpm run ios:build- Build for releasenpm run ios:fix- Apply build fixesnpm run ios:reset- Reset and reinstall dependenciesnpm run lint- Run ESLintnpm test- Run testsnpm run test:watch- Run tests in watch modenpm run test:coverage- Run tests with coverage
gaterlink/
├── GaterLinkApp/ # Main React Native app
│ ├── ios/ # iOS native code
│ ├── src/ # React Native source code
│ │ ├── context/ # React contexts
│ │ ├── screens/ # App screens
│ │ └── services/ # Business logic services
│ ├── __tests__/ # Test files
│ └── package.json # App dependencies
├── server/ # Backend server
│ ├── routes/ # API routes
│ ├── services/ # Server services
│ └── data/ # Database files
└── README.md # This file
- Open the app on your iOS device
- Navigate to the "Home" tab to see your saved doors
- Use the "Scan" feature to scan door QR codes
- View access history and status
- Use the "Chat" feature to communicate with administrators
- Open the app and go to "Settings"
- Switch to "Admin Mode" by entering your credentials
- Navigate to the "Admin" tab to view all access requests
- Fixed React Native 0.80.0 compatibility issues
- Resolved CocoaPods dependency conflicts
- Updated Firebase configuration
- Fixed TypeScript compilation errors
- Resolved Metro bundler issues
- Removed duplicate files and system artifacts
- Eliminated duplicate FirebaseService (kept TypeScript version)
- Removed unused SMSService
- Implemented proper logging service to replace console statements
- Added database profile management functions
- Resolved TODO items in authentication routes
- Consolidated documentation
- App is optimized for iPhone only (Android support removed)
- Requires iOS 13.0 or higher
- Some features require physical device testing (camera, biometrics)
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Submit a pull request
[Add your license information here]