A real-time bus tracking and pick-up notification system built for NST students.
The Shuttle Tracker web-app allows students to:
- π See the exact location of their college shuttle
- ποΈ Request a pick-up with one tap
- ποΈ Display their class schedule to the driver
This system reduces confusion and unnecessary calls, helping everyone stay on time.
| Role | Benefits |
|---|---|
| Students | Shorter waiting times, on-time arrivals |
| Drivers | Fewer calls, clearer routing |
| Faculty | Fewer class disruptions |
| NST Management | More disciplined, data-driven transport system |
- Frontend: React 19, Vite, TailwindCSS
- Backend: Node.js, Express.js, Socket.io
- Authentication: Google OAuth, JWT
- Real-time Communication: Socket.io
- Maps: Leaflet, React-Leaflet
Shuttle_Tracker/
βββ backend/ # Node.js backend server
β βββ src/
β β βββ app.js # Express app entry point
β β βββ socket.js # Socket.io configuration
β β βββ models/ # Database models
β β β βββ Bus.js # Bus model schema
β β βββ routes/ # API route handlers
β β βββ auth.js # Authentication routes
β β βββ bus.js # Bus tracking routes
β βββ package.json # Backend dependencies
β βββ .env.example # Environment variables template
β
βββ frontend/ # React frontend application
β βββ src/
β βββ App.jsx # Main React component
β βββ main.jsx # React entry point
β βββ socket.js # Socket.io client setup
β βββ components/ # Reusable UI components
β β βββ BusCard.jsx
β β βββ Footer.jsx
β β βββ Loader.jsx
β β βββ Navbar.jsx
β β βββ ThemeProvider.jsx
β β βββ ThemeToggle.jsx
β βββ pages/ # Application pages/views
β β βββ Driver.jsx
β β βββ Home.jsx
β β βββ Student.jsx
β β βββ TrackShuttle.jsx
β βββ assets/logo/main-logo.png
β βββ index.html # HTML template
β βββ package.json # Frontend dependencies
β βββ vite.config.js # Vite configuration
β βββ tailwind.config.js # TailwindCSS config
β βββ eslint.config.js # ESLint configuration
β
βββ README.md # Project documentation (this file)
βββ HLD.md # High-level design document
βββ LICENSE # MIT licenseWe welcome contributions from the community!
git clone https://github.com/YOUR_USERNAME/Shuttle_Tracker.git
cd Shuttle_Trackercd backend
npm install
npm run dev
# or
node src/app.jsCreate a .env file from .env.example:
cp .env.example .envConfigure MongoDB URI, Google OAuth, etc.
Backend runs on http://localhost:5001
cd frontend
npm install
npm run devFrontend runs on http://localhost:5173
git checkout -b feature/your-feature-nameBackend .env example:
MONGODB_URI=mongodb://localhost:27017/shuttle_tracker
GOOGLE_CLIENT_ID=your_google_client_id
JWT_SECRET=your_jwt_secretFrontend .env (optional):
VITE_GOOGLE_CLIENT_ID=your_google_client_idπ Important:
.env.localis git-ignored β never push secrets.
type(scope): short description
Longer description (optional)
Closes #issue-number
Types: feat, fix, docs, style, refactor, test, chore
git add .
git commit -m "feat: add feature xyz"
git push -u origin feature/your-feature-name- Open a Pull Request with a clear description.
- Reference issues like:
Fixes #issue-no.
- πΊοΈ Real-time Bus Tracking
- π± One-tap Pickup Request
- β° ETA Predictions
- πΊοΈ Optimized Routes
- π Trip Analytics
- π Usage Analytics
- π Fleet Management
- π Data Insights
- βοΈ System Configuration
- Google OAuth Login (NST domain)
- JWT Token Authentication
- Rate Limiting & API Protection
- CORS Security
- Input Validation & Sanitization
- Environment Variables for Secrets
- Discussions: Open for Q&A
- Bug Reports: Use Issues with reproducible steps
- Feature Requests: Open an Issue with details
- Contact: Maintainers listed in repo
- Look for labels:
good first issue,help wanted,documentation
Released under MIT License.
Happy Contributing β€οΈ