Real-time Bus Tracking Web App That Get People Moving Faster Vibuzz is an intelligent real-time Bus tracking-web app that enable riders to move smoothly faster and comfortably on public transit. With an easy interface and real-time bus tracking with arrival estimates, Vibuzz makes it easy to know exactly where your bus is, when it’s going to arrive and how to best plan your ride whether you're going to work, going for a ride, or just navigating town!
- 🗺️ Real-time Bus Tracking - Live bus positions on interactive maps
- 📍 Location-based Services - Find closest bus stops using GPS
- 🚏 Bus Stop Information - Detailed stop information with ETAs
- 🔄 Direction Selection - Choose between forward and backward routes
- 🌙 Dark/Light Theme - Beautiful UI with theme switching
- 📱 Responsive Design - Optimized for both desktop and mobile
- 🎯 Manual Location Selection - Set location manually if GPS fails
- ⚡ Fast Performance - Built with Vite for optimal speed
The app provides a seamless 3-step process to track your bus:
Choose from available bus lines in your city.
Select the direction you want to travel (Forward/Backward route).
View real-time bus positions, nearby stops, and get live updates.
- Node.js (v18 or higher)
- npm or yarn package manager
- 
Clone the repository git clone https://github.com/aymanbest/vibuzz.git cd vibuzz
- 
Install dependencies npm install 
- 
Set up environment variables Create a .envfile in the root directory:VITE_API_BASE_URL=your_api_base_url_here 
- 
Start the development server npm run dev 
- 
Open your browser Navigate to http://localhost:5173
- React 19.1.0 - Modern React with latest features
- TypeScript 5.8.3 - Type-safe development
- Vite 7.0.0 - Lightning-fast build tool
- Tailwind CSS 3.4.0 - Utility-first CSS framework
- React Router DOM - Client-side routing
- React Leaflet - Interactive maps
- Framer Motion - Smooth animations
- Tabler Icons - Beautiful icon set
- ESLint - Code linting
- TypeScript ESLint - TypeScript-specific linting
- PostCSS & Autoprefixer - CSS processing
src/
├── components/          # Reusable UI components
│   ├── BusStopsList.tsx       # Bus stops list component
│   ├── BusTrackingView.tsx    # Main tracking view
│   ├── DirectionSelector.tsx  # Direction selection
│   ├── MapComponent.tsx       # Interactive map
│   ├── MobileBottomSheet.tsx  # Mobile interface
│   └── ...
├── contexts/           # React contexts
│   └── ThemeContext.tsx      # Theme management
├── hooks/              # Custom React hooks
│   ├── useApi.ts            # API data fetching
│   └── useLocation.ts       # Location services
├── styles/             # Styling utilities
│   └── designSystem.ts      # Design system
├── types.ts            # TypeScript type definitions
├── utils.ts            # Utility functions
└── App.tsx             # Main application component
# Development
npm run dev          # Start development server
# Building
npm run build        # Build for production
npm run preview      # Preview production build
# Code Quality
npm run lint         # Run ESLint- Live bus positions updated in real-time
- Interactive map with custom markers
- Route visualization with stop sequences
- GPS-based location detection
- Manual location selection fallback
- Closest stop calculation with walking distance
- Mobile-first approach
- Bottom sheet interface for mobile
- Sidebar interface for desktop
- Smooth animations and transitions
- Dark and light mode support
- System preference detection
- Persistent theme selection
| Variable | Description | Required | 
|---|---|---|
| VITE_API_BASE_URL | Base URL for the bus tracking API | Yes | 
- Fork the repository
- 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.
- Leaflet for the amazing mapping library
If you have any questions or run into issues, please open an issue on GitHub.



