Case study
Footfall and Promotion Analytics Services
Optimised .NET Core services and tools that analyse shopping-centre footfall and promotion data across large MongoDB collections, with full unit-test coverage and verification on Linux.
The client
A system collects footfall data from shopping centres into large MongoDB collections. The client needed fast ways to query that data for any time window, generate realistic promotion data for testing, and run complex analytics on large JSON datasets.
The challenge
- Query large collections for arbitrary time intervals quickly.
- Generate bulk promotion and sales records within each store's opening hours.
- Process large JSON files and keep logs and data updates consistent.
- Prove correctness with unit tests on both Windows and Linux.
What we did
We built a .NET Core Web API and a .NET Core console application on MongoDB. The API returns analysed records for each store over any number of days with optimised queries, and creates randomised promotion data in bulk. The console application runs complex analytics on large record sets and JSON files. Both have xUnit tests for all scenarios and were verified on Linux through WSL.
What it does
Time-window analytics
Fetch and analyse footfall for any interval across large collections.
Bulk data generation
Random promotion and sales records created per store within working hours.
Large-file processing
Read, analyse and write large JSON datasets.
Error handling
Consistent, dynamic error and exception handling.
Unit tests
xUnit coverage of all test scenarios.
How it is built
- Optimised MongoDB queries from .NET Core.
- Cross-platformVerified on Windows and Linux (WSL).
Results
- Fast analytics across large footfall collections.
- Tested, cross-platform services ready for Linux deployment.
AI-ready by design.
Where AI fits next.
Store visit data already flows through clean services. AI can turn it into forecasts.
Predict busy hours to plan staff.
Spot unusual drops in visits per store.
Ask questions about traffic trends in plain language.
One to two weeks to pick the use case and prove the data is ready.