CCTV View

A live camera wall for a police IT division: every stream in one grid, searchable, and managed by admins while everyone else can only watch.

BID TIK, the information technology division of the South Sumatra Regional Police, monitors a growing number of CCTV streams. Opening each one by its address doesn't work in a control room.

CCTV View puts them on a single wall. Cameras are records with a title, stream address and active or inactive status; the home page plays them all at once in a grid the operator can resize, and each opens into its own full view.

What  it  does

Camera wall

Streams play muted and auto-started in a grid of one to four columns, with search by name.

Single view

Each camera opens on its own page for a closer look.

Admins and guests

Admins add, edit and remove cameras; guests can watch but not change anything.

Closed sign-up

Accounts are created by admins only; public sign-up is disabled.

Built  in  three  days

The whole app went from first commit to finished in three days in December 2025. It started by embedding each camera in an iframe, then switched to native video elements so streams fill their tiles cleanly and the grid can be laid out freely.

Built  with

  • Next.js
  • TypeScript
  • Prisma
  • PostgreSQL
  • Clerk
  • TanStack Query
  • shadcn/ui

Related  Work