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
