Releases: msufiyanpk/queueless
Pulse
QueueLess v1.3.5 — Pulse
The queue is no longer passive. This release makes QueueLess proactive — customers get push alerts before they even think to check, admins can pause individual services without touching the rest, tokens can be re-issued for latecomers, and the queue resets itself overnight without anyone lifting a finger.
🔔 Proactive customer push notifications
- Alert fires at position 2 — "You're almost up — head to the counter soon"
- Alert fires at position 1 — "You're next — make your way now"
- Works in background tabs via the Web Push API
- Fires only on actual position change, never on page load
♻️ Token re-queue
- Expired tokens can be re-issued within a 2-hour window
- Re-queue preserves the original service, priority, and group size
- Customer is redirected to the new token page instantly
POST /tokens/:id/requeue
👨👩👧 Group / family tokens
- Customers select a group size of 1–5 when taking a token
- Group badge shown on the token page and in admin waiting lists
- Hidden for the Medical/Hospital industry profile
⏸ Per-service pause
- Admins can pause individual service queues without affecting others
- Paused columns show a
PAUSEDbadge; Call Next is blocked for that service - Customers on
/takeare auto-redirected away from paused services - Priority tokens always bypass per-service pause
🚨 SLA wait alert
- Red banner on the admin dashboard when any service exceeds the configured SLA wait target
- Threshold set in Settings → Queue Behaviour (minutes)
📊 Staff performance metrics
- New Staff Performance table in Admin Analytics
- Shows tokens served, average service time, and tokens called — per staff member
- Sourced from
staff_usernamenow correctly attributed on every queue action (admin and staff portal) GET /admin/analytics/staff
🗓 Scheduled daily auto-reset
- Set a daily reset time (HH:MM) in Settings → Queue Behaviour
- Queue resets automatically at that time in the Asia/Karachi timezone
- Duplicate-reset protection via a same-day flag
👥 Multiple admin accounts
- Create and manage up to 10 admin accounts at
/admin/manage - Passwords bcrypt-hashed; no account can delete itself
GET / POST / DELETE /admin/admins
📺 Display board welcome message
- Admins can set a permanent welcome banner on the display board (
/display) - Configured in Settings → Display Board
🤝 Appointment → walk-in auto-merge
- Confirmed appointments automatically become priority tokens within ±5 minutes of their scheduled time
- Prevents double-issue; logs an
appointment_mergedanalytics event
🛠 Analytics — complete historical coverage
- Analytics now cross-references Firebase RTDB directly for token counts
- All tokens ever issued appear in stats — not just those logged after setup
- CSV parser refactored to use column-name mapping from the header row (no more fragile index positions)
🐛 Bug fixes
- Staff portal
callNextToken()was never passingstaffUsername— all staff actions showednullin analytics - Admin dashboard
apiCallNext/apiCallNextPrioritymissingstaffUsername— now passesuser.sub - Temporal Dead Zone crash in
MyToken.jsx—positionconstant referenced inuseEffectdep array before declaration; hoisted above all hooks
Files changed
backend/src/services/queue.service.js · analytics.service.js · scheduler.service.js (new) · appointmentMerge.service.js (new) · admin.controller.js · staff.controller.js · admin.routes.js · token.controller.js · token.routes.js · server.js
frontend/src/pages/AdminManage.jsx (new) · AdminDashboard.jsx · AdminSetup.jsx · AdminAnalytics.jsx · TakeToken.jsx · MyToken.jsx · Display.jsx · App.jsx · components/Layout.jsx · services/api.js
Full changelog: CHANGELOG.md
Crew
QueueLess v1.3.0 — Crew
Codename Crew. The biggest release yet — full account management for admins and staff, a smarter queue engine, eight new platform features, and a zero-vulnerability dependency baseline.
👤 Admin & staff account management
- Admin profile page — edit display name, view username and role
- Admin change-password flow with current-password verification
- Staff profile page — edit display name, view assigned service
- Staff change-password flow
- ADMIN ▼ dropdown in the navigation header — theme toggle (light/dark pill switch), My profile, Change password, Sign out
- Staff dropdown — My queue, My profile, Change password
- Organisation name and industry type shown next to the logo and in the footer status bar
🚦 Priority queue engine
- Priority tokens displayed in a dedicated amber section above all regular service columns
- When any priority token is waiting, all regular service queues are visually paused and "Call Next" is blocked — enforced on both frontend and backend
POST /admin/queue/call-next-priority— calls the earliest priority token across all services regardless of which countercallNextToken()returns409 PRIORITY_BLOCKINGif a regular token would be called while priority tokens are pending- Priority tokens bypass the queue-paused gate — they can always be issued even when the general queue is suspended
🌟 Eight new features
| Feature | Where |
|---|---|
| Display board | /display now shows a priority section, flash animation on token change, notes on called tokens, and an announcement banner |
| Live announcements | Admin broadcasts a message from the dashboard — shown instantly on Home, Take-a-Token, Staff dashboard, and the display board via Firebase real-time |
| Staff dashboard upgrade | Announcement banner, priority-at-other-counters alert, skip/no-show for called token, inline note editor per token |
| Wait preview | Each service card on /take shows live waiting count + estimated wait time before the customer commits |
| Token lookup | Search panel in Admin dashboard — find any token by number, ID, or note; inline note editor in results |
| Analytics charts | Hourly volume bar chart (SVG, no external library) added to the Report page alongside the existing heatmap |
| Token notes | Staff and admin can attach a short note to any token; notes appear in waiting lists, dashboard, and the display board |
| Appointment booking | /book — customers pre-book a slot (date, time, service); /admin/appointments — admin lists, confirms, and cancels bookings |
🔒 Security
firebase-adminupgraded 12 → 14 resolving the transitive chain of vulnerablegaxios/google-gax/teeny-requestpackagesoverrides.uuid = ^11.1.1— patches GHSA-w5hq-g745-h8pq (missing buffer bounds check in uuid v3/v5/v6 whenbufis provided)overrides.js-yaml = ^4.1.0— patches quadratic-complexity DoS via repeated YAML merge-key aliasesnpm auditreports 0 vulnerabilities (was 8 moderate)
🐛 Bug fixes
- Dark mode:
.bg-inkelements (buttons, selected cards, table headers) now show correct text colour in dark mode via global CSS override - Settings page (
/admin/setup) no longer accessible without login — auth guard added 401interceptor scoped to protected routes only — cold-start Render errors no longer wipe auth tokens and redirect to login- React Rules of Hooks violations in
AdminProfileandStaffProfilefixed (auth guard moved after all hook calls) - CSV export on Analytics page now sends
Authorization: Bearerheader viafetch()+ blob download loadingreference error inHome.jsxfixed by destructuring fromuseQueueState
Upgrade note: firebase-admin 12 → 14 is a major version change. The Realtime Database API (admin.database(), .ref(), .once(), .set(), .update(), .transaction()) is unchanged.
Alive
QueueLess v1.2.2 — Analytics & Stability
A focused patch release hardening the analytics pipeline, fixing UI regressions, and improving admin tooling.
🛠 Fixes & improvements
Analytics
- Detailed report page (
/admin/report) with AI-generated action plan and staffing recommendation - Dual-write analytics to MongoDB + local CSV for redundancy
- Auto-refresh analytics data every 30 seconds with manual refresh button
- Dynamic heatmap — hours now computed from real data instead of hardcoded range
- Per-service intensity calculation corrected for accurate colour scaling
- Hardcoded chart labels replaced with dynamic service names
Admin navigation
- Global admin navigation bar with links to Dashboard, Analytics, Report, and Settings
- "Generate Report" removed from navbar; moved to a dashboard button for cleaner UX
UI
- Hero section layout fixed for 100% browser zoom
- Live status card centred in its column
- Footer logo visibility corrected; hero lockup enlarged
- Logo assets updated with final versions
Stability
- MongoDB fallback for analytics when primary write fails (non-fatal)
- Firebase mock refs in tests updated to match multi-path atomic update schema
- Vite peer dependency conflict resolved for clean Vercel builds
- High-severity npm vulnerability patched
Sight
QueueLess v1.2.0 — Initial Public Release
The first stable release of QueueLess — a cloud-native, token-based queue management system built for real organisations.
✨ What's included
Core queue system
- Walk-in token issuance with email notification and tracking link
- Real-time queue state via Firebase Realtime Database — no refresh needed
- Priority token support — flagged tokens served before regular queue
- Token expiry, skip / no-show marking
- Customer-facing token tracking page (
/token/:id) with live position, ETA, QR code, WhatsApp share, and browser push notifications - Confetti + sound alert when your token is called
Admin panel
- Secure JWT-based admin login
- Queue control dashboard — pause, resume, reset, call next, skip tokens
- Multi-service queue support — each service counter managed independently
- AI Auto Mode — ML-predicted call intervals from historical traffic data
- Analytics dashboard with per-hour and per-service traffic heatmap
- Staff management — create, list, and remove staff accounts
Staff portal
- Staff login (username/password or PIN)
- Per-counter queue view with call-next and no-show controls
- Staff presence indicator (online/offline) visible to admin
Public display
/display— full-screen TV-ready board showing now-serving tokens per service, live clock, and queue counts
Infrastructure
- React 18 + Vite frontend deployed on Vercel
- Node.js + Express backend deployed on Render
- Firebase Realtime Database (Singapore region)
- MongoDB Atlas for analytics persistence
- GitHub Actions CI/CD pipeline
- Firebase Analytics integration
QueueLess is a cloud-native queue management system. No app installation required — customers use any browser.