Inspiration
When I first got to Rutgers, I had no idea where to go. Downloading a regular bus app only showed buses and routes... nothing else. As a freshman trying to rush to class, what was I supposed to do?
What it does
- What it does
- RUGoing is a mobile web app for Rutgers with:
- Interactive map of campus buildings, parking lots, bus stops, residences, and facilities
- Real-time bus tracking with live locations and route info
- Search for buildings, lots, and stops
- Mobile-first design with touch controls
- Offline support via cached map tiles
- Route filtering by weekday/weekend schedules
- Bus animations for position update
How I built it
Frontend:
- HTML5/CSS3/JavaScript with a modular architecture
- Leaflet.js for mapping
- WebSocket client for real-time bus data
- Responsive design with touch-friendly controls
- Service Worker for offline caching Backend:
- Node.js WebSocket server connecting to Passio’s bus API
- Real-time data processing and client distribution
- Automatic reconnection and error handling Data:
- Campus data for 400+ buildings, 800+ parking lots, 200+ bus stops
- Bus routes with weekday/weekend schedules
- Geographic coordinates for all locations
Challenges we ran into
- Real-time bus data: Managing WebSocket connections, reconnection, and data cleanup
- Mobile performance: Smooth animations and efficient rendering on phones
- Modular architecture: Refactoring a 4,800-line monolith into 10 focused modules
- Bus marker deduplication: Preventing duplicate markers and stale data
- Cross-platform compatibility: Consistent behavior across mobile browsers
- Offline functionality: Caching map tiles and handling network issues
Accomplishments that we're proud of
- ~47% code reduction by modularizing the codebase
- Real-time bus tracking with smooth animations
- Mobile-first design with touch-friendly controls
- Offline support via cached map tiles
- Modular architecture with clear separation of concerns
- Comprehensive campus data covering major locations
- WebSocket integration with automatic reconnection and error handling
What we learned
- Modular architecture improves maintainability and debugging
- WebSocket management requires robust error handling and reconnection logic
- Mobile optimization needs performance tuning and touch-friendly design
- Real-time data benefits from deduplication and cleanup strategies
- Offline functionality improves reliability on campus networks
- Team collaboration is more effective with a clear, modular structure
What's next for RUGoing
- Push notifications for bus arrivals and delays
- Route planning with step-by-step directions
- Social features for sharing locations and meeting spots
- Accessibility with screen reader support and keyboard navigation
- Analytics for usage patterns and performance
- PWA features for app-like installation and offline use
- Integration with Rutgers systems for dining, events, and services

Log in or sign up for Devpost to join the conversation.