The admin panel designed for a distributor firm that efficiently manages the purchases of products from factories and their distribution to shops at competitive prices. Built with React, TypeScript, Zustand, Ant Design 5, Tailwind CSS, Sass, Cypress

React.js

Image of a computer and keyboard on a desk

Problem

The admin-panel was built to manage and streamline the distribution of a wide range of water and food products from factory to shop. One major challenge was implementing dynamic filtering for a diverse product catalog, including items like soda, chocolate, and sugar with varying weights and categories. Ensuring accurate stock synchronization and visualizing warehouse and shop locations using Yandex Maps added further complexity. The frontend also required building reusable components like customizable tables, dynamic forms with React Hook Form, and a universal modal system via higher-order components. Supporting multilingual UI and responsive layouts for warehouse staff and loaders was essential.

Image of people at a desk with their computers
Image of people at a desk with their computers

Production technology in detail

I used React, TypeScript, React Query, React Hook Form, MUI and Cypress. I separated UI from business logic and optimized rendering using React.memo, useMemo, and lazy loading with Suspense. For data fetching, I implemented React Query with centralized fetch/post handlers and cache keys to avoid unnecessary re-renders.

Dynamic forms were built using React Hook Form with integrated validation. I customized Material UI components to match the design system and ensure responsive layouts. I integrated i18next backend, enabling real-time dynamic translations from the backend.

For state management, I used React Context for nested components, Redux for global state, and React Query for asynchronous data. I developed reusable modals via higher-order components and wrote Cypress end-to-end tests.

Image of people working at their computers in an office
Image of people working at their computers in an office
Image of hand drawn wireframes
Image of hand drawn wireframes
Image of someone sketching logos
Image of someone sketching logos
Image of a man wearing a beanie from behind
Image of a man wearing a beanie from behind
Image of an iPhone lying on a table
Image of an iPhone lying on a table