An interactive 3D globe kiosk application that allows visitors to add their location pins with smooth animations and real-time tracking.
Screencast.From.2025-08-08.15-54-47.mp4
- π Interactive 3D Globe - Smooth rotating globe with custom Mapbox styling
- π Real-time Pin Placement - Visitors can add pins with smooth entrance animations
- π― Smart Location Zoom - 20-second zoom animation to user's location
- π± Touch-Optimized Interface - Mobile-friendly with custom on-screen keyboard
- β¨οΈ Custom Keyboard - Built-in keyboard with email domain suggestions
- π Live Metrics - Real-time visitor statistics and top cities
- β° Auto-Reset - 2-minute timeout returns to default view
- π¨ Smooth Animations - Graceful pin transitions and visual feedback
- π« Kiosk Mode - Non-interactive pins for privacy and simplicity
- Node.js 16+
- Mapbox account and API token
# Clone the repository
git clone https://github.com/your-username/globe-kiosk-app.git
cd globe-kiosk-app
# Install dependencies
npm install
# Set up environment variables
cp .env.example .envAdd your Mapbox token to .env:
VITE_MAPBOX_ACCESS_TOKEN=pk.your_mapbox_token_here# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewglobe-kiosk-app/
βββ src/
β βββ components/
β β βββ KioskGlobe.jsx # 3D globe with pin management
β β βββ FormFlow.jsx # Multi-step form with keyboard
β βββ App.jsx # Main application layout
β βββ App.css # Responsive layout styles
β βββ main.jsx # Application entry point
βββ public/ # Static assets
βββ .env # Environment variables (not tracked)
βββ demo.mp4 # Demo video
- Trade Shows & Exhibitions - Visitor registration and engagement
- Corporate Lobbies - Employee/visitor origin tracking
- Museums & Visitor Centers - Interactive guest experiences
- Event Registration - Conference and meetup check-ins
- Retail Locations - Customer demographics and engagement
- React 18 - Modern component framework
- Vite - Lightning-fast build tool
- Mapbox GL JS - Interactive maps and 3D globe
- React Country Flag - Country flag components
- Custom CSS - Responsive kiosk-optimized styling
- 4-step form flow - Location, Name, Gender, Age, Contact
- Autocomplete location search - Powered by Mapbox Geocoding
- Touch-friendly interface - Large buttons and clear typography
- Visual feedback - Smooth animations and notifications
- Auto-rotation - Globe continuously rotates when idle
- Smart zoom management - Adjusts to container size automatically
- Timeout protection - Returns to default view after 2 minutes
- Pin clustering - Groups multiple pins in same city
- Live statistics - Top cities and recent visitors
- Modify
App.cssfor layout adjustments - Update colors in component style functions
- Customize animations in CSS keyframes
- Update the map style URL in
KioskGlobe.jsx - Modify globe projection and visual settings
- Adjust pin colors and clustering behavior
- Edit the
questionsarray inFormFlow.jsx - Add/remove form steps as needed
- Customize validation rules
VITE_MAPBOX_ACCESS_TOKEN=pk.your_token_here- Zoom duration: 20 seconds to user location
- Timeout: 2 minutes before auto-reset
- Pin limit: No limit, clustering handles density
- Rotation speed: Configurable in animation function
The app tracks:
- Top visitor cities with live counts
- Recent visitors with timestamps
- Pin density by geographic region
- Form completion rates (can be enhanced)
npm run build
# Deploy dist/ folder to GitHub Pages- Connect your GitHub repository
- Set environment variable:
VITE_MAPBOX_ACCESS_TOKEN - Auto-deploy on push to main branch
npm run build
# Serve dist/ folder with any static file server- API keys stored in environment variables
- No user data persistence - privacy-focused design
- Rate limiting through Mapbox API quotas
- Input validation on all form fields
- Fork the repository
- Create feature branch (
git checkout -b feature/awesome-feature) - Commit changes (
git commit -m 'Add awesome feature') - Push to branch (
git push origin feature/awesome-feature) - Open Pull Request
MIT License - see LICENSE file for details.
- Mapbox for mapping and geocoding services
- React Country Flag for flag components
- Inter Font for clean typography
Made with β€οΈ for interactive kiosk experiences