PUBG Stats Tracker

Personal project for experimenting with React Native and Expo. Overcoming rate limiting challenges and integrating real-time data.

Client

The PUBG Stats Tracker mobile application is built using React Native with Expo. The app provides players with real-time statistics about their PUBG gameplay, including metrics such as total kills, wins, and matches played.

I originally built the client as a web-based React application, but later decided to create a mobile app using React Native and Expo for experimentation.

Rate Limits

One of the main challenges I faced during development was handling the PUBG API's strict rate limiting. To address this, I implemented a backend server that acts as an intermediary between the mobile app and the PUBG API. This server caches player statistics in a MongoDB database, reducing the number of direct requests to the PUBG API and ensuring compliance with its rate limits.

Server

The server functions as a focused data-aggregation layer for the application. It authenticates with the PUBG API using a secret key, fetches raw player-stat data, and transforms the responses into compact, strongly-typed objects suitable for frontend consumption.

Before responding to the client, the processed player stats are persisted in a MongoDB database. Because the PUBG API enforces a rate limit of 10 requests per minute, the server only issues a new API request if the stored stats are older than two minutes; otherwise, the cached data from MongoDB is returned directly to the client.

Technologies used:
  • React Native
  • Expo
  • Typescript
  • Express
  • MongoDB
Back to all projects