Skip to content

Releases: msufiyanpk/queueless

Pulse

21 Jun 23:45

Choose a tag to compare

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 PAUSED badge; Call Next is blocked for that service
  • Customers on /take are 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_username now 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_merged analytics 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 passing staffUsername — all staff actions showed null in analytics
  • Admin dashboard apiCallNext / apiCallNextPriority missing staffUsername — now passes user.sub
  • Temporal Dead Zone crash in MyToken.jsxposition constant referenced in useEffect dep 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

21 Jun 23:45

Choose a tag to compare

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 counter
  • callNextToken() returns 409 PRIORITY_BLOCKING if 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-admin upgraded 12 → 14 resolving the transitive chain of vulnerable gaxios / google-gax / teeny-request packages
  • overrides.uuid = ^11.1.1 — patches GHSA-w5hq-g745-h8pq (missing buffer bounds check in uuid v3/v5/v6 when buf is provided)
  • overrides.js-yaml = ^4.1.0 — patches quadratic-complexity DoS via repeated YAML merge-key aliases
  • npm audit reports 0 vulnerabilities (was 8 moderate)

🐛 Bug fixes

  • Dark mode: .bg-ink elements (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
  • 401 interceptor scoped to protected routes only — cold-start Render errors no longer wipe auth tokens and redirect to login
  • React Rules of Hooks violations in AdminProfile and StaffProfile fixed (auth guard moved after all hook calls)
  • CSV export on Analytics page now sends Authorization: Bearer header via fetch() + blob download
  • loading reference error in Home.jsx fixed by destructuring from useQueueState

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

21 Jun 23:44

Choose a tag to compare

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

21 Jun 23:44

Choose a tag to compare

Sight Pre-release
Pre-release

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.