- What the App Does
- Backend Repository
- Why a Backend Is Required
- Requirements
- Environment Variables
- Local Development Setup
- Running the App
This repository was developed quickly and is still a work in progress. It is not finished and may contain errors, bugs, incomplete features, or unstable behavior.
Use it at your own risk. Contributions, feedback, and improvements are welcome.
TTR Tracker provides a mobile-friendly interface for accessing table tennis data in Germany, including:
- 🔍 Player search
- 🏓 Club search
- 👥 Club teams
- 📊 League and region browsing
- 📈 League tables
- 📅 Match schedules
- 📋 Match and encounter details
- ⭐ Favorites for players
- ⭐ Favorites for clubs
- ⭐ Favorites for leagues
This repository contains the mobile app frontend. The app requires a separate backend service to function correctly. The backend is available here:
The backend serves as the counterpart to this mobile app, providing the API that the app communicates with.
Before running or building the app, ensure that the backend is configured, deployed, and reachable from your device or build environment.
The app does not communicate directly with myTischtennis from the frontend. Instead, it utilizes a custom backend as a defensive proxy layer. This is crucial because the myTischtennis interface used by the project is unofficial and should not be accessed directly, aggressively, or systematically from the mobile client.
The backend is responsible for:
- Providing stable API endpoints for the mobile app
- Forwarding selected requests to the underlying data source
- Adding short-lived caching
- Applying rate-limit protection
- Handling errors consistently
- Keeping authentication/session-related logic outside of the mobile app
- Avoiding systematic crawling or permanent mirroring of external data
Before running or building the app, install the following:
- Node.js
- npm
- An Expo account
- EAS CLI
- A running instance of the backend
npm install -g eas-clieas loginnpm installThe mobile app needs to know where the backend API is located. This is configured through the following environment variable:
EXPO_PUBLIC_API_BASE_URL=https://your-backend-domain.comCreate a .env file in the root of the project when your backend is running on your computer (example):
EXPO_PUBLIC_API_BASE_URL=http://localhost:3000To start the app locally, use:
npx expo startThe app is built using EAS Build. A typical setup uses at least two build profiles:
- Preview for internal testing
- Production for release builds
The preview profile is useful for creating installable builds that can be tested on real devices. The production profile is intended for release builds, such as app store builds or final distribution builds.
Local .env files are useful during development, but cloud builds should use EAS environment variables.
Create the backend URL for the preview environment:
eas env:create \
--name EXPO_PUBLIC_API_BASE_URL \
--value https://your-backend-domain.com \
--environment preview \
--visibility plaintextCreate the backend URL for the production environment:
eas env:create \
--name EXPO_PUBLIC_API_BASE_URL \
--value https://your-backend-domain.com \
--environment production \
--visibility plaintext-
Install dependencies:
npm install
-
Log in to Expo:
eas login
-
Build an Android APK:
Preview:
eas build --platform android --profile preview
Production:
eas build --platform android --profile production