GRATS

Privacy Policy

Application: GRATS  ·  Data Controller: Danylo Puchka  ·  Contact: 37600daniil@gmail.com

Effective date: 7 June 2026  ·  Last updated: 16 June 2026

1. Introduction

This Privacy Policy explains how Danylo Puchka ("we", "us", "our") collects, uses, stores, and protects the personal data of users ("you") of the GRATS mobile application (iOS and Android), available under the bundle identifier com.danylopuchka.grats.

GRATS is a gym membership management platform. The mobile app allows gym members to view their memberships, track visit history, freeze memberships, generate QR codes for gym check-in, and discover gym locations. A separate web platform is used by gym owners and staff to manage customer records and issue memberships.

By creating an account and using the GRATS app, you acknowledge that you have read this Privacy Policy and agree to the processing of your personal data as described herein.


2. Legal Framework

We process personal data in compliance with:

  • Regulation (EU) 2016/679 (GDPR) — applicable to users who are residents of the European Union or whose data is processed by services operating under EU data protection standards.
  • Law of Ukraine No. 2297-VI "On the Protection of Personal Data" — applicable to processing activities conducted in Ukraine or relating to Ukrainian residents.

3. Data We Collect

3.1 Data You Provide Directly

DataPurpose
Email addressAccount creation, identity verification, password reset, transactional notifications
PasswordAuthentication (stored as a secure hash by Firebase; never accessible to us in plain text)
First name and last namePersonalisation of your account and identification by gym staff
Phone numberIdentity verification via SMS one-time password (OTP); linking your account to your gym membership

3.2 Data Generated During Use

DataPurpose
Email verification statusConfirming your identity before granting access
Phone verification statusConfirming ownership of the phone number
Membership freeze/unfreeze events — start date, end date, optional reasonRecording your request to pause a membership
QR code issuance timestampGenerating a time-stamped code used for gym check-in

3.3 Data Created by Gym Staff on Your Behalf

When you purchase a gym membership, gym staff may create or update the following records on the GRATS web platform, which are visible in your mobile app:

DataPurpose
Customer record — your phone number linked to a specific gymIdentifying you as a customer at that gym
Purchase record — gym name, membership product details (title, validity, visit limits), start date, expiry date, price paid, discount applied, payment method label (cash / card / bank transfer / other), internal notesRecording your membership and enabling access
Visit records — check-in and check-out timestamps, locker/key number assignedTracking your gym attendance
Note on payment methods: GRATS records only a label indicating how payment was received (e.g., "cash"). No payment card numbers, bank account details, or other financial credentials are collected or stored by the app.

3.4 Data Stored Locally on Your Device Only

DataPurpose
Theme preference (light / dark / system)Remembering your display preference
Language preference (English / Ukrainian)Remembering your chosen interface language
Firebase authentication tokensKeeping you signed in between app sessions

This data is stored on-device using React Native AsyncStorage and is never transmitted to our servers.

3.5 Data We Do NOT Collect

We do not collect any of the following:

  • Payment card or bank account numbers
  • Biometric data (fingerprints, facial recognition)
  • Precise or approximate GPS location
  • Device advertising identifiers (IDFA, Android Advertising ID)
  • Browsing history or behavioural analytics
  • Contacts or address book data
  • Camera images or photos from your device's media library
  • Calendar data
  • Accelerometer, gyroscope, or other sensor data

4. Legal Basis for Processing

Processing activityGDPR legal basis (Art. 6)Ukrainian law basis
Account creation and authenticationArt. 6(1)(b) — performance of a contractArt. 11(1) — consent; Art. 11(2) — necessary for contract
Onboarding verification (email + phone OTP)Art. 6(1)(b) — performance of a contractArt. 11(2) — necessary for contract
Displaying your memberships and visit historyArt. 6(1)(b) — performance of a contractArt. 11(2) — necessary for contract
Freeze/unfreeze of membershipsArt. 6(1)(b) — performance of a contractArt. 11(2) — necessary for contract
QR code generation for check-inArt. 6(1)(b) — performance of a contractArt. 11(2) — necessary for contract
Retention of purchase records for accountingArt. 6(1)(c) — legal obligationLegal obligation under Ukrainian accounting law

5. How We Use Your Data

We use your personal data solely to:

  • Create and maintain your GRATS account
  • Verify your identity during sign-up and password recovery
  • Link your mobile account to your gym membership records
  • Display your active and past memberships in the app
  • Record and display your gym visit history
  • Process membership freeze and unfreeze requests
  • Generate QR codes used by gym receptionists to record check-ins
  • Allow gym staff to identify you when you visit a gym
  • Process direct membership purchases initiated by you in the app, where the gym has enabled this feature

We do not use your data for advertising, profiling, automated decision-making, or sale to third parties.


6. Third-Party Service Providers (Sub-Processors)

We share your data with the following third-party providers strictly for the purposes of operating the service:

ProviderRoleData involvedLocation
Google FirebaseIdentity management, databaseAll account and operational dataUSA / EU (Google Cloud)
ResendTransactional email deliveryEmail address, OTP codesUSA
SMS FlySMS deliveryPhone number, OTP codesUkraine
[object Object] (Elastic Beanstalk)Backend API hostingAPI request data, Firebase tokensEU or USA (varies by region)
[object Object] (S3)Gym image storageGym photos (not user photos)EU or USA (varies by region)
[object Object] (GCS)Encrypted weekly Firestore backup (disaster recovery)All Firestore collections: account, membership, visit, and gym dataUSA / EU (Google Cloud)

All sub-processors are contractually bound to process data only for the purposes we specify. Google Firebase, Google Cloud Storage, and AWS comply with GDPR via Standard Contractual Clauses and applicable data processing agreements.

We do not transfer your personal data to any other third parties without your explicit consent.


7. Cross-Border Data Transfers

Your data may be processed outside Ukraine and/or the European Economic Area (EEA) by the sub-processors listed above. Where data is transferred to countries not recognised as providing an adequate level of protection, we rely on:

  • Standard Contractual Clauses (SCCs) approved by the European Commission (for Google Firebase and AWS)
  • The applicable data processing agreements of each provider

8. Data Retention

Data typeRetention period
Account data (email, name, phone)Until you request account deletion
Email/phone verification codes (OTP)15 minutes from issuance, then deleted automatically
Password reset codes15 minutes from issuance, then deleted automatically
Membership (purchase) and visit records3 years from the membership end date (accounting obligations)
Device-local preferences and tokensUntil you uninstall the app or sign out

After the applicable retention period, data is deleted or anonymised so it can no longer be attributed to you.


9. Your Rights

Under GDPR (EU residents)

You have the right to:

  • Access — request a copy of the personal data we hold about you
  • Rectification — request correction of inaccurate or incomplete data
  • Erasure ("right to be forgotten") — request deletion of your data, subject to legal retention obligations
  • Restriction — request that we limit processing of your data in certain circumstances
  • Data portability — receive your data in a structured, machine-readable format
  • Objection — object to processing based on legitimate interests
  • Withdrawal of consent — where processing is based on consent, you may withdraw it at any time without affecting the lawfulness of prior processing
  • Lodge a complaint with a supervisory authority — in particular, the data protection authority in your EU member state of residence

Under Ukrainian Law on Personal Data Protection

You have the right to:

  • Know the source of your personal data and the purpose of its processing
  • Access your personal data
  • Receive information about third parties to whom your data is transmitted
  • Object to processing that causes significant harm to your legally protected interests
  • Request rectification or deletion of your personal data
  • Apply for protection of your rights to the Ukrainian Parliament Commissioner for Human Rights (Ombudsman)

How to exercise your rights

Submit a request by email to 37600daniil@gmail.com with the subject line "Privacy Request". We will respond within 30 days. For complex requests, we may extend this period by a further 60 days (with notice).

You can also edit your name via the Profile screen in the app, and you can delete your account by contacting us.


10. Security

We implement the following technical and organisational measures to protect your data:

  • Encryption in transit — all communication between the app and servers uses HTTPS/TLS
  • Firebase Security Rules — access to Firestore data is restricted server-side to authenticated users who own the data
  • Short-lived authentication tokens — Firebase ID tokens expire and are refreshed automatically
  • OTP expiry — one-time passwords expire after 15 minutes and are single-use
  • No plain-text credentials — passwords are managed entirely by Firebase Authentication and are never accessible to us

No method of transmission or storage is 100% secure. While we strive to protect your data, we cannot guarantee absolute security.


11. Children's Privacy

The GRATS app is not directed at children under the age of 16. We do not knowingly collect personal data from children under 16. If you believe a child under 16 has provided us with personal data, please contact us at 37600daniil@gmail.com and we will delete such data promptly.


12. Automated Decision-Making and Profiling

We do not use your personal data for automated decision-making or profiling that produces legal or similarly significant effects.


13. Changes to This Policy

We may update this Privacy Policy from time to time. When we do, we will update the "Last updated" date at the top of this document. For material changes, we will notify you via an in-app notice or email. Your continued use of the app after such notification constitutes acceptance of the updated policy.


14. Contact

If you have any questions, concerns, or requests regarding this Privacy Policy or the processing of your personal data, please contact:

Danylo Puchka
Email: 37600daniil@gmail.com

We aim to respond to all privacy-related enquiries within 30 days.