Skip to content

Queue System is an online scheduling service for small and medium-sized businesses. It provides services for stores to manage their queues and their customers' states.

Notifications You must be signed in to change notification settings

Jerry0420/queue-system-lite

Repository files navigation

Queue System

Table Of Contents

Overview

Queue System is an online scheduling service for small and medium-sized businesses. It provides services for stores to manage their queues and their customers' states.

Once a store owner signup an account and sign in to Queue System, it will display a QRcode and the current state of all queues. When a customer enters a store, the customer will scan the QRcode and send out information to join a line. Once a customer scans a QRcode, the QRcode will change automatically. This mechanism can prevent unfair queuing and protect the other customers that haven't been in the queue yet. A store owner can change every single customer's status at any time. When a new customer joins the line or the state of a customer is updated, the website will refresh immediately and automatically.

Every account will persist for 24 hrs. After 24 hrs, Queue System will suspend the account (a.k.a. close store). Once the store is closed, Queue System will send a CSV report to the store owner and delete its related data in the database. This CSV file contains all customers' detailed information to let the store owner implement further business analysis. Next time, the store owner can signup an account again (a.k.a. open store) to use Queue System.

Screenshots

  • Open Store (signup an account).
  • Every account will persist for 24 hrs. After 24 hrs, Queue System will suspend the account (a.k.a. close store). Next time, the store owner can signup an account again (a.k.a. open store) to use Queue System.

  • Sign in to the account

  • The store can be actively closed by the store owner or passively closed by Queue System. 24 hrs after opening, Queue System will suspend the account (a.k.a. close store).

  • Once the store is closed, Queue System will send a CSV report to the store owner. This CSV file contains all customers' detailed information to let the store owner implement further business analysis.


  • The store owner can see the summary of all queues and the QRcode block after signing into their account.

  • Once a customer scans a QRcode, the QRcode will change automatically.


  • The store owner can change every single customer's status at any time.

  • When a new customer joins the line or the state of a customer is updated, the website will refresh immediately and automatically.

Architecture

  • Services
    • Backend
    • Frontend
    • CronJob
      • Send a REST API to the backend server every minute to check if there is any store that has already opened 24 hrs.
      • Queue System will suspend these selected accounts and send CSV reports to these store owners that contain all customers' detailed information.
  • Storage
    • PostgreSQL
  • Reverse Proxy
    • Nginx

Services

Backend

Developed by Golang.
Provide REST API and Server-Sent Event API interfaces.

Frontend

Developed by ReactJS with Typescript.
Interact with backend by REST API and Server-Sent Event API interfaces.

PostgreSQL

The PostgreSQL server stores all data.

For simplicity, I put the backend and the frontend in one repo.

Testing

  • Unit Tests
    • All file names that postfix with _test.go
    • Separately unit test Delivery, Usecase and Repository with Mock and Dependency Injection.
  • Integration Tests
    • Test the whole workflow by user stories.

About

Queue System is an online scheduling service for small and medium-sized businesses. It provides services for stores to manage their queues and their customers' states.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages