VITALIY
VOLOSHIN

Store visits and photo reports in Telegram

Shelf Audit is a mobile app for employees who check product displays in stores. An auditor finds a location, verifies their position and submits photographs. Managers review reports, track assignments and inspect visit details in the same app.

Try Shelf Audit

Auditor
Shelf AuditLoading
Admin
Shelf AuditLoading

Task — Organize field audits through Telegram

Field employees needed a clear workflow on their phones: find a store, start a visit on site and attach the required photographs. Managers needed to know who completed an assignment, when the visit took place and what the employee submitted. The application had to connect stores, assignments, location checks and photo reports, separate employee and manager access and retain visit history. It also includes earnings records and payout requests.

My contribution — Developed the application from scratch

I built Shelf Audit from scratch, designing the database and implementing the backend and mobile interfaces for auditors and managers. I added Telegram sign-in, distance-based store search, location validation and photo uploads. I connected assignments to visits and reports, built the wallet, payout history and administration tools, and set up organization-level data separation and access rules.

Location and stores
Implemented distance-based store sorting and on-site location checks, including location refresh and unavailable-location handling.
Telegram sign-in
Implemented Telegram data validation and application sessions. The user’s role within an organization determines access to screens and operations.
Photo reports
Developed the field-report workflow: associating photographs with visits, uploading material and displaying incoming images to managers.
Auditor assignments
Built store and employee assignment tools with deadlines and task states. Each visit is linked to its assignment so it can be followed through to the report.
Manager tools
Developed the photo feed and audit-review tools. A visit record brings together the store, employee, timestamps, distance and photograph.
Data and access
Designed the organization schema and relationships between stores, assignments and visits. Database rules enforce data access beyond the interface.

From a store assignment to a reviewed report

Find a store and start an audit

The employee opens the app in Telegram and sees available stores ordered by distance. Search helps locate a particular store, while a location check determines whether a visit can start. The active audit shows two required photo types: checkout or cooler, and a regular shelf. Once both photographs are ready, the employee can submit the report.

Review photographs and visit details

Submitted photographs appear in a shared feed. Each image includes the store, address, visit time and employee. Managers can move from browsing shelves to a particular audit, view its photo at a larger size and check the start and submission times, distance and location. The visit record keeps these details together with the submitted material.

Assign tasks and track completion

To create an assignment, a manager chooses the store, employee and deadline. The task list shows assignees, dates and work status. Filters narrow the list to one employee or store and a selected period. This helps managers review a route or an employee’s work without searching through the entire history.

Check earnings and request a payout

The employee wallet shows the available balance, total earnings and funds awaiting payout. An m10 number can be entered here before opening a withdrawal request. The app presents the amount and destination for confirmation before submission. Previous requests and their statuses remain in the history, showing which payments are pending and which have been processed.

Manage audits and payouts from a phone

Managers can filter audits by store, product, employee, period and status. The administration area provides store selection for planogram uploads and a list of payout requests. Each request shows the employee, destination, amount and available action. These tools also use the mobile interface, so report review and administration are accessible within the app.

Mobile screens, location data and photo storage

The interface uses React and TypeScript, with Tailwind CSS for mobile layouts. Supabase handles sessions, PostgreSQL access and photograph storage. PostGIS supports geographic data and distance checks. Database relationships connect an organization, store, assignment, visit and its material, while access policies restrict operations on those records. Telegram supplies sign-in data that the server validates before creating a session.

  • TypeScript
  • React
  • Supabase
  • PostgreSQL
  • PostGIS
  • Telegram API
  • Tailwind CSS
  • Docker

Let’s discuss
your project

Tell me about your project

Leave your contact details and a few words about the project. I’ll read your enquiry and get in touch to discuss it.