Integra Telekom

Integra Telekom

An internet provider's website with a helpdesk built in: customers sign in with their router's credentials and report outages, and technicians work every ticket to a logged close.

Integra sells internet, network infrastructure, data-centre, telephony, managed services and software to homes and businesses. Its site had two jobs: win new customers, and give existing ones a way to report a problem that didn't depend on a phone call reaching the right person.

The result is one Next.js app. The public side markets the services, posts activities and photos, and checks coverage by area. Behind a sign-in sits a complete helpdesk, where every outage becomes a ticket with photos, an owner, a technician and a timeline.

Signing  in  with  your  router

Customers don't sign up; their device does. Integra registers each customer's router by SSID and password. When someone signs in with a username the system hasn't seen, it checks that pair against the registered devices, and on a match creates their Clerk account and a local user on the spot, then sends them to their tickets. Staff sign in normally and are routed by role: admins and technicians to the dashboard, customers to their own tickets.

Life  of  a  ticket

Submitted

The customer picks a reason, describes the problem and attaches photo evidence, compressed server-side.

Confirmed

An admin confirms it and becomes its handler.

In progress

A technician must be assigned before work starts, and uploads their own working evidence.

Completed

Closed with every status change, by whom and when, on the ticket's timeline. Tickets can also be canceled.

Behind  the  dashboard

Role-based menus

Admins and technicians see different navigation, and technicians get a queue of tickets assigned to them.

Notifications

In-app notifications follow tickets as they move, per user.

Content

Activities, galleries with drag-and-drop ordering, and the device registry live alongside the tickets.

Protected media

Uploaded files are served through an API route that checks the user and validates the path, and sign-in attempts are rate-limited.

Shipping  it

The site deploys itself. A push to master runs a GitHub Actions workflow that SSHes into the VPS, pulls, installs, generates the Prisma client, applies migrations and rebuilds, with a separate type-check workflow guarding the branch. A sitemap, robots rules and structured data look after search engines.

Built  with

  • Next.js 16
  • React 19
  • TypeScript
  • Prisma
  • PostgreSQL
  • Clerk
  • shadcn/ui
  • TanStack Table
  • dnd-kit
  • sharp
  • Motion
  • GitHub Actions

Related  Work