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
Share this project:

Updates