My client, AGS, is a company that produces gaming equipment used in casinos worldwide. The marketing materials and other documents related to their machines was previously scattered across several sites like Wordpress and Dropbox which lacked unison and ease of navigation for their customers. Their ask was a customer portal with a managed user database that centralized these resources while keeping them restricted to the general public. I designed and built the application from scratch to meet their feature requests.
My solution leverages the Auth.js library to configure two separate identity providers: Auth0 for customers and Microsoft Entra ID for employees. User accounts are stored in a Postgres database managed by a Prisma ORM to provide an object-oriented programming layer for interacting with the data.
Registration flow
Customers must register for an account and receive AGS approval before gaining access. The registration flow guides the user through a series of forms to collect their personal and company information.
Portal
The portal’s design is simple and lightweight allowing AGS’s graphics and brand identity to stand out. The page layout utilizes a tile-based grid system which is reused in subsequent pages allowing for reusable components in the frontend. This modular approach creates consistency across the platform and allows for navigation items to be easily added, removed, and reordered to the client’s requests.
Admin
These views show only for internal AGS employees and allow them to manage their customer user base. Customers that register for an account using an allowlisted email are granted immediate access without requiring explicit AGS admin approval.