Back to the App
Screen recording

# Implementation Notes

Tech Stack and Best Practices

  • Used Dynamic store layout and walkable area with shelf placement
  • Base a11y practices followed (since app might be used by disabled people) tested with voice over :)
  • Used React 19 and Next.js 16+
  • tailwindcss for utility-first CSS styling
  • three.js and @react-three/fiber for 3D rendering
  • A* pathfinding algorithm for shortest path calculation
  • Held-Karp algorithm for optimal TSP route calculation
  • zod and nuqs for Typesafe state management (no useState in entire app)
  • Used motion to animate show/hide items
  • Architectured for scalability and maintainability
  • React Server Components where applicable
  • Donut pattern for client in server components
  • Tested rendering with heavy products list. app/page.tsx
  • Used jest and react-testing-library for unit and integration tests
  • Used and added playwright tests for basic e2e testing (Results: https://ah.sayjeyhi.com/e2e/)

AI Usage

  • Used cursor (Composer Model) to implement 3D models and store assets
  • Get cursor (Composer Model) assist to write e2e and unit tests
  • Used Chat-GPT to get help on fixing some bugs and optimizing code
  • The algorithm for pathfinding was inspired by chat gpt suggestions and improved upon using cursor

Can Be Also Done...

  • ⬜️Load Products from external source
  • ⬜️Add more unit and integration tests
  • ⬜️Improve e2e tests to get cleaner and cover more user paths
  • ⬜️Confirm delete all products action
  • ⬜️Implement more a11y features and become WCAG compliant
  • ⬜️Improve skeletons for page load
  • ⬜️Optimize 3D store appearance
  • ⬜️Improve pathfinding algorithm for more products
  • ⬜️Add i18n support, dutch, etc.
  • ⬜️Support dark mode
Back to the App