Client Portal

Order management portal with online payments and in-app messaging.

About the project

Client Portal is a commercial application for managing B2B and B2C orders for automotive ECU file modifications for motorsport use on closed circuits. Separate customer and admin panels cover the process from uploading a file and selecting services, through payment, to downloading the finished file.

The project brings orders, files, and communication into one place, giving customers a way to track their orders and administrators access to the full context of each request.

Login page

1 / 9

Key features

  • Customer panel: placing orders, selecting modifications, uploading .bin files, and viewing order history and statuses.
  • Admin panel: viewing all orders, filtering, updating statuses, and uploading finished files.
  • Online payments: Paynow integration with order status updates after payment confirmation.
  • In-app messaging: conversations linked to individual orders, keeping discussions attached to the relevant request.
  • Email notifications: order information, status updates, and payment reminders.
  • Two languages: Polish and English interfaces and email messages.

Payment flow decision

The client proposed adding a wallet with a balance that could be used for future orders. I felt that, in this case, it would introduce an extra step without providing enough benefit to the user. I suggested paying directly for each order, which simplified the process of placing and paying for orders.

Order workflow

  1. Placing an order: the customer uploads a .bin file, selects modifications, and adds any notes.
  2. Payment: the application redirects to Paynow, and payment confirmation updates the order status.
  3. Processing: the administrator handles the order in the admin panel, updates its status, and modifies the file.
  4. Delivery: the finished file becomes available for download in the customer's order details.

Tech stack

  • Next.js: the application interface and server logic.
  • Prisma & Supabase: storage for users, orders, and messages.
  • Better Auth: authentication and session management, with separate customer and admin access.
  • Cloudflare R2: storage for original uploads and finished files.
  • Paynow: online payments and webhook confirmations.
  • Resend: email notifications.
  • Tailwind CSS & shadcn/ui: panel interfaces.
  • I18n: Polish and English versions of the application.
  • Sentry and Cloudflare Turnstile: error monitoring and bot protection.

Key business benefits

  • Organized order handling: files, payments, statuses, and discussions are linked to a single order.
  • Customer self-service: access to order history, progress, and finished files without having to contact support each time.
  • Less manual work: payment confirmations and email notifications support day-to-day order handling.
  • International customer support: Polish and English interfaces and system emails.