QueueMate is a real-time, role-based token queue management system designed for use cases like hospitals, clinics, or service centers. Built with the MERN stack and Socket.IO, it supports live queue updates, receptionist/admin roles, and a modern, clean UI.
- 🔁 Real-time Token Updates (via WebSocket/Socket.IO)
- 🧑⚕️ Receptionist Panel – generate and call patient tokens with name input
- 🛡 Admin Panel – reset queue, manage dashboard
- 👥 Role-Based Access – receptionist vs admin functionality
- 💾 Backend powered by MongoDB for token persistence
- 🎨 Frontend styled with Tailwind CSS
| Layer | Tech |
|---|---|
| Frontend | React, Tailwind CSS |
| Backend | Node.js, Express.js |
| Database | MongoDB + Mongoose |
| Real-time | Socket.IO |
| Auth | JWT, Admin Secret Key |
- Clone the Repo
git clone https://github.com/arnab-iitkgp/queuemate.git
cd queuemate- Set up .env for the Backend Create a file server/.env and fill it like this:
MONGO_URI=your_mongodb_connection_string
PORT=5000
ADMIN_SECRET=your_admin_creation_secret
JWT_SECRET=your_jwt_secret
Or refer to backend/.env.example.
- Install Dependencies
cd backend
npm install
cd ../frontend
npm install
- Run the App
npm run dev
npm run dev
queuemate/
├── backend/ # Express backend
│ ├── src/
│ │ ├── controllers/
│ │ ├── middlewares/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── utils/
│ │ └── server.js
│ ├── .env
│ └── .env.example
├── frontend/ # React frontend
│ ├── public/
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.jsx
│ │ └── main.jsx
├── .gitignore
├── README.md
🔁 Recall last token feature
📊 Admin dashboard with stats
💾 Token queue persistence and recovery
We welcome contributions! Open a PR or issue to get started.