LPM

Luxe Passion Moteur landing page

Luxe Passion Moteur is a full-stack vehicle sales platform combining a public showcase and an administration backoffice. I designed and developed the product end-to-end with Next.js App Router, from UX and API routes to storage and testing.

The public side highlights available and sold vehicles, while the backoffice provides authenticated CRUD workflows for listings, image uploads to S3, and structured form handling for reliable data processing.

LPM vehicle detail mobile view first screen

The administration area was built to be practical for non-technical users: fast listing creation and editing, controlled media management, and predictable data formatting between UI and backend route handlers.

  • Role: full-stack development (UI/UX, APIs, MongoDB, S3 integration, E2E testing).
  • Admin workflows: create, update and delete vehicle listings.
  • Advanced form: multi-image upload with preview and reordering in admin.
  • Hardening: unique image naming strategy to avoid upload collisions.
  • Auth layer: protected admin access with dedicated auth route and API flow.
  • Delivery: iterative releases validated with end-to-end tests on key user paths.

Tech Stack

Next + React

modern frontend stack

AWS S3 + CDN

image hosting and delivery

MongoDB

listings and content storage

Tailwind

mobile-first responsive UI

  • Framework: Next.js 15 (App Router) + React 18.
  • UI stack: Tailwind CSS with Mantine and shadcn components.
  • Storage: MongoDB for listings, AWS S3 for images.
  • Backend: App Router route handlers for admin and public endpoints.
  • Email: Nodemailer integration for transactional contact flows.
  • Quality: Cypress E2E tests covering admin and form workflows.
LPM sales listings desktop view
  • Responsive interface for desktop and mobile.
  • AWS-based image pipeline for product visuals.
  • MongoDB data model to manage vehicle listings.
  • Integrated contact flow for inbound leads.
  • Admin dashboard with create, update and delete operations.
  • Secure backoffice access with authentication.
  • API route handlers in App Router to separate public and admin concerns.
  • FormData parsing and coercion for arrays and numeric fields.
  • E2E coverage for authentication, listing creation and upload flows.

Technical decisions

  • Public/admin split: clear separation between showroom pages and internal management routes.
  • FormData normalization: backend formatting for arrays and numeric coercion before persistence.
  • Upload resilience: unique naming to prevent image overwrite collisions in S3.
  • Reliability: Cypress scenarios used as a regression safety net during iterations.

Screenshots (desktop)

LPM home page desktop view
Home page (desktop)
LPM sales listings desktop view
Vehicle listings (desktop)
LPM services desktop view
Services page (desktop)
LPM contact page desktop view
Contact page (desktop)

Screenshots (mobile)

LPM home page mobile view
Home page (mobile)
LPM mobile menu
Navigation menu (mobile)
LPM sales listings mobile view
Vehicle listings (mobile)
LPM vehicle detail mobile view first screen
Vehicle detail #1 (mobile)
LPM vehicle detail mobile view second screen
Vehicle detail #2 (mobile)
LPM services mobile view
Services page (mobile)
LPM contact mobile view
Contact page (mobile)

© 2024 A-xel