Project Title: BitGolf – Golf Handicap & Performance App (iOS + Android) 1. Project Objective BitGolf is a mobile application for iOS and Android targeted at Italian-speaking golfers. The goal is to provide a polished, fully automated solution without requiring ongoing user assistance. Core capabilities include: • automatic import of official results from the national federation (Federazione Italiana Golf – FIG) based on user credentials, • calculation of the Handicap Index according to the World Handicap System (WHS), • calculation of playing handicap for each golf course, • simulation module for “what if I score X” to predict a new HI, • yearly trend charts of performance and handicap evolution, • modern graphic design and intuitive UX, tailored for the Italian market. 2. Platforms & Technology • Native-style mobile apps for iOS (minimum iOS 14) and Android (minimum Android 10). • Development using React Native with the Expo framework (so the app runs on Expo Go during development, and builds via EAS). • Written in TypeScript for type safety. • Local offline data storage using MMKV or SQLite for performance and reliability. • Secure storage of credentials via expo-secure-store. • Backend: lightweight serverless or Node.js backend to handle FIG login, results retrieval, and expose secure APIs to the app. • Graphical charts: use a charting library capable of smooth animations (for example React Native SVG + some chart library) to display annual trends. 3. Key Functionalities 3.1 User Authentication & Federation Link • User logs in using their FIG membership number (“numero tessera”) and password used for the federation portal. • Credentials are stored securely on the device (or alternatively a session token is stored). • The app supports persistent login and a logout option that clears stored credentials/session. • On initial login, link the user to their FIG account and allow tests for connection to results. 3.2 Automatic Results Synchronisation • The app automatically (or on-demand) synchronises official scores from FIG via the backend API for the logged-in user. • It imports the most recent results (e.g., last 20 or whatever available) with details: date, course, tee, gross/adjusted strokes, PCC (Playing Conditions Calculation) or other adjustments if provided. • The app must detect and prevent duplicate entries. • Provide a manual “Sync now” button for the user to trigger the import. 3.3 Handicap Index (HI) Calculation • Implement WHS logic: differential calculation, best 8 of last 20 differentials, rounding to one decimal place. (Source: WHS rules)  • On each update (either via new score or import) the HI is recalculated automatically. • In settings optionally support ESR/Soft Cap/Hard Cap logic (for future version). • Display current HI along with date of last update. 3.4 Course Handicap & Playing Handicap • Provide a module where user selects a golf course (or tees) from local database (with parameters: Course Rating, Slope Rating, Par). • Compute Course Handicap (CH) as: CH = round(HI × (Slope / 113) + (CourseRating − Par)) • Compute Playing Handicap (PH) applying an allowance percentage configurable (e.g., 95%, 100%, 85%) depending on competition format. • Display results clearly (CH and PH) and allow user to change allowance percentage. 3.5 “What If” Simulation • Screen where user chooses a course, enters an hypothetical adjusted gross score plus optional PCC, and the app computes the resulting differential and shows what the new HI would be if that result was added to the pool. • Provide clear UI and explanation of simulation result (e.g., “Your HI would become …”). 3.6 Historical Data & Annual Trend Graphs • Display a list of all imported and manually entered scores (with date, course, tee, adjusted score, PCC, source: FIG/manual). • Provide graphical view of HI on a yearly timeline (and optionally monthly) showing how the user’s HI has changed over time. • Provide summary statistics: number of rounds, average differential, best 8, etc. • Charts should be visually appealing and integrated with the design aesthetic. 3.7 Offline Operation & Low-Assistance Requirement • All core functionalities (HI calculation, simulation, CH/PH calculation) must work offline, i.e., without an active internet connection (except for import). • The app should requiere no ongoing user assistance after initial login – everything must run automatically. • Minimal user interaction: login once, then let the app sync and calculate. 4. Graphic & UX Requirements • Branding name: BitGolf. • Colour palette: elegant / sport style (greens, whites, gold accents) – design must reflect premium, performance-oriented brand. • UI must be Italian-language, with proper localization support or built in Italian from the start. • Use modern typography, icons, animations (e.g., smooth transitions for charts). • Design splash screen, app icon, and onboarding screens. • User interface optimized for one-hand use (especially on mobile phones). • Use consistent styling across iOS & Android; adopt platform-specific design patterns where appropriate. 5. Backend Requirements • Provide API endpoints: • POST /fig/login → input: { cardNumber, password }, output: { sessionKey } or error. • GET /fig/results?limit=20 → with Authorization header; returns JSON array of scores. • Backend must handle login to FIG portal (or use any official API if available) and fetch results. • Passwords must not be stored long-term; only session tokens or encrypted credentials as necessary. • All communication encrypted via HTTPS. • Backend should be serverless/auto-scaling, requiring minimal maintenance. • Provide documentation of the API (JSON schema, endpoints, error codes) as part of deliverables. 6. Technical Quality, Security & Privacy • App must perform fluidly on mid-range devices (both Android & iOS). • Startup time < 3 seconds after splash screen. • Secure storage of user credentials (using expo-secure-store or equivalent). • Conform to GDPR: include privacy policy, user consent for data import from FIG, and ability to delete user data. • Code must be version-controlled (GitHub or GitLab) and modular, well-documented. • Provide comments and documentation sufficiently to allow future evolution of app. • Provide fallback handling: if FIG portal changes, handle login failures gracefully. • Optional future support: dark-mode, push notifications (for future version). 7. Deliverables • Full source code of mobile apps (iOS + Android) built via Expo/EAS. • Full source code of backend. • Configuration files: app.json, eas.json, environment variables template. • Documentation: README with build instructions, deployment instructions, API documentation, user guide (Italian). • Graphics: app icons (iOS/Android), splash screens, UI assets, brand kit (colours, fonts, icons). • Chart/graph modules for annual trend. • Test account (or demo mode) for backend to simulate FIG import. • Build packages ready for App Store and Google Play submission. • Ownership transfer: all code & assets become property of client.