A modern, cross-platform venue booking application built with React Native/Expo for mobile and React for web, featuring Firebase backend and containerized deployment with Docker and Kubernetes.
- Cross-Platform: Runs on iOS, Android, and Web
- Modern UI: Beautiful, responsive design with enhanced styling
- Real-time: Firebase integration for real-time data
- Scalable: Docker and Kubernetes ready for production
- Secure: Authentication, payment processing, and data protection
- PWA Ready: Web app works offline with service workers
- iOS App Store ready
- Android Play Store ready
- Expo Go development
- Modern web application
- Progressive Web App (PWA)
- Responsive design
groundio/
├── app/ # Mobile React Native components
├── web-app/ # Web React application
├── docker/ # Docker configurations
├── k8s/ # Kubernetes manifests
├── scripts/ # Deployment scripts
├── services/ # Firebase and API services
└── components/ # Shared components
- Node.js 18+
- npm or yarn
- Expo CLI (
npm install -g @expo/cli
) - Docker (for containerization)
- kubectl (for Kubernetes deployment)
-
Clone the repository
git clone https://github.com/your-username/groundio.git cd groundio
-
Install dependencies
# Install main app dependencies npm install # Install web app dependencies cd web-app && npm install && cd ..
-
Setup environment variables
cp .env.example .env # Edit .env with your Firebase config
# Start Expo development server
npm run start:mobile
# Run on specific platforms
npm run android
npm run ios
# Start web development server
npm run start:web
# Alternative: Use Expo web
npm run web
# Start main development server (mobile + web)
npm start
# Start development containers
npm run docker:dev
# or
docker-compose up
# Build and start production containers
npm run docker:prod
# or
docker-compose -f docker-compose.prod.yml up
# Build production image
npm run docker:build
# Manual build
docker build -t groundio:latest .
- Kubernetes cluster (local or cloud)
- kubectl configured
- Docker registry access
# Linux/Mac
npm run k8s:deploy
# Windows
npm run k8s:deploy:win
-
Update registry in deployment scripts
# Edit scripts/deploy.sh or scripts/deploy.bat # Change REGISTRY variable to your registry
-
Create secrets
# Update k8s/secrets.yaml with your actual secrets kubectl apply -f k8s/secrets.yaml -n groundio
-
Deploy services
# Apply all Kubernetes configurations kubectl apply -f k8s/ -n groundio
-
Check deployment status
kubectl get pods -n groundio kubectl get services -n groundio
# Scale web application
kubectl scale deployment groundio-web --replicas=5 -n groundio
# Scale API
kubectl scale deployment groundio-api --replicas=3 -n groundio
Create .env
file in root directory:
# Firebase Configuration
FIREBASE_API_KEY=your_api_key
FIREBASE_AUTH_DOMAIN=your_auth_domain
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_storage_bucket
# Stripe Configuration
STRIPE_PUBLISHABLE_KEY=your_stripe_key
STRIPE_SECRET_KEY=your_stripe_secret
# API Configuration
API_BASE_URL=https://api.groundio.com
WEB_BASE_URL=https://groundio.com
# Run tests
npm test
# Run tests with coverage
npm run test:ci
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Build for Android
npm run build:android
# Build for iOS
npm run build:ios
# Build for both platforms
npm run build:all
# Build web app
npm run build:web
cd web-app
vercel --prod
cd web-app
npm run build
# Upload dist/ folder to Netlify
# Submit to app stores
npm run submit:android
npm run submit:ios
docker swarm init
docker stack deploy -c docker-compose.prod.yml groundio
# Use the provided K8s configurations
kubectl apply -f k8s/
- Update all default passwords in
k8s/secrets.yaml
- Configure SSL/TLS certificates
- Setup firewall rules
- Enable authentication for admin panels
- Configure backup strategy
- Setup monitoring and logging
- Review CORS settings
- Validate input sanitization
- Web:
http://your-domain/health
- API:
http://your-api/health
- Kubernetes: Built-in liveness/readiness probes
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
# Clean Docker system
docker system prune -a
# Rebuild without cache
docker build --no-cache -t groundio:latest .
# Check pod logs
kubectl logs -f deployment/groundio-web -n groundio
# Debug pod
kubectl describe pod <pod-name> -n groundio
# Clear caches
npm run install:clean
expo start --clear
# Reset Metro cache
npx expo start --clear
Made with ❤️ by the Groundio Team