Graduate project: Capstone

Vinyl Curator Capstone

Help a customer discover records they might love, then help a record-store owner understand what customers are looking for.

Built for my MSc in AI in Business, the Vinyl Concierge prototype connects those two experiences. Customers describe their music tastes and receive a five-record selection. The owner side turns customer interest into signals for stock planning and merchandising.

Product designReact & TypeScriptFirebase

Problem

Independent record stores need to support discovery for customers while making informed decisions about what to stock and feature.

My role

I developed the capstone concept and working prototype with AI-assisted design and implementation, using tools including Google AI Studio, Codex, and Claude Code and Design.

What I built

A customer recommendation experience, an owner intelligence dashboard, and connected sign-in, session storage, and customer-interest records.

Scope

A working graduate prototype with a limited catalog. The owner dashboard combines demonstration inventory and sales data with customer-demand signals stored in Firestore.

Two audiences

Discovery for customers. Insight for owners.

The customer experience

Customers share artists or genres they enjoy and can add a mood, listening context, or a note. The app returns five records with shop-clerk-style explanations and suggested areas to explore. Customers can express interest or give a thumbs-up or thumbs-down.

Google sign-in allows recommendation sessions and responses to be saved privately to the customer’s profile.

The owner experience

The Owner Intelligence Dashboard helps translate interest in albums, artists, and genres into cautious sourcing suggestions. It also includes sample inventory and sales data so the business-planning experience can be explored without connecting a store’s live systems.

A signed-in tester can review their own recommendation session on the owner side without exposing their identity. The broader view of demand across customers is restricted to accounts with the owner role.

How it is built

The interface and the back end work together

The screens are one part of the product. Sign-in, saved sessions, catalog data, and access rules support the experience behind them.

Front end · What people see and use

React & TypeScript

The customer questionnaire, recommendation cards, feedback controls, and owner dashboard are built as a React application. Vite builds the application, Tailwind provides styling, and Motion animates screen transitions and the record-selection experience.

Application server · Serving the experience

Express

The production server serves the application and exposes a recommendation endpoint that runs the catalog-based recommendation logic.

Back end · Identity and saved information

Firebase & Firestore

Firebase Authentication supports Google sign-in. Firestore stores the album catalog, private customer sessions, and de-identified customer-interest signals used by the owner experience. The catalog is populated using the Discogs API, which supplies release information such as artist, title, genre, style, and cover artwork.

Access controls · Who can see what

Customer privacy and owner roles

Firestore rules separate private customer records from owner access. Customers cannot assign themselves the owner role, and the cross-customer demand view is restricted.

From a recommendation to an owner insight

01

Describe

A customer shares their music tastes and listening context.

02

Recommend

The app ranks catalog records using artist matches, genres, styles, and context.

03

Save

Signed-in sessions and responses create private records and de-identified interest signals.

04

Review

The owner view groups interest by album, artist, and genre to support sourcing discussions.

Prototype boundaries

What this demonstrates

A connected product experience

The capstone demonstrates how customer interaction can inform a business-facing view, with working authentication, persistence, and role-based access. It brings together product thinking, interface design, recommendation logic, and backend integration.

A limited catalog and clear sample data

The catalog import searches the Discogs API using a selected list of artists and albums, then saves matching releases in Firestore. For each customer, the recommendation engine ranks the saved catalog using their preferences, with a local fallback catalog if Firestore is unavailable. It does not require a live generative-model call for recommendations. The limited selection may not contain a customer’s favorite artist.

Inventory and sales figures in the owner demonstration are synthetic. Customer-interest signals show what people explored or responded to; they are not verified purchases or proof of future demand.

Explore the capstone

Try the customer journey, then see its business context.

Use the Customer / Owner switch in the prototype to explore the two experiences.