# Learn ATC — Full Reference for LLMs > Cleaned, structured Markdown digest of the public Learn ATC product reference. Compiled from the `/api/platform-knowledge/*` endpoints and the public site map. Use this as a single document for deep context ingestion. Treat the live rendered pages and the live product catalogue as canonical; the knowledge endpoints are a guide and may lag behind the deployed product — refetch and cross-check when accuracy matters. Last reviewed: 2026-06-15 Source baseline: Machine-readable reference (guide, may lag): Content language: English (default). The UI is selectable in 10 languages (English, German, Spanish, Ukrainian, Japanese, Italian, Dutch, Polish, French, Turkish). Russian (`ru`) is not a selectable UI language; it exists only for hreflang/SEO. --- ## 1. Platform Overview Source: Learn ATC is a web and mobile aviation-training platform focused on ATC (Air-Traffic-Control) radio communication. It combines an AI-powered ATC simulator with e-learning, exam preparation, and community features. The UI is available in 10 selectable languages. Targeted at student pilots, private pilots, and anyone preparing for aviation radio-licence exams. ### Target audience - Student pilots preparing for radio licences (BZF I, BZF II, AZF, PPL(H), SPL, and similar). - Private pilots wanting to practise and maintain ATC-communication skills. - Aviation enthusiasts and hobbyists. - Flight schools and flight instructors looking for training tools. - Airlines and airline operators seeking radio-communication training or refresher tooling for their crews. - Aviation-domain companies looking for software-development partners with established aviation expertise. - Companies looking for software-development partners experienced in AI-driven learning environments, custom dashboards, and education-tech platforms. ### Company Learn ATC is a joint venture between two companies. - **Fabian Wagner** — CTO / technical lead. Company: Blax Software & Consulting e.U., based in Gallneukirchen, Austria. - **Tobias Rösner** — COO / business lead. Company: Clesk Digital GmbH, based in Wilnsdorf, Germany. Contact channels: `support@learn-atc.com`, `office@learn-atc.com`, `sales@learn-atc.com`. Website: . --- ## 2. Languages and Localisation Source: Selectable UI languages (10): English (default), German, Spanish, Ukrainian, Japanese, Italian, Dutch, Polish, French, Turkish. There is no Austrian-German locale. - Russian (`ru`) is not a selectable UI language. The config contains a `ru` entry and Russian SEO strings purely for hreflang/SEO; there is no Russian UI. The `ru -> uk -> en` fallback is intentional. - URLs use the Nuxt i18n strategy `prefix_and_default`. Unprefixed URLs (e.g. `/pricing`) serve the active locale; prefixed URLs (`/de/...`, `/en/...`) force a specific language. - Selectable UI locale prefixes: `en`, `de`, `es`, `uk`, `ja`, `it`, `nl`, `pl`, `fr`, `tr`. The `ru` prefix exists for SEO/hreflang only. - All German content uses formal address (Sie/Ihr, not Du/Dein). - Customer-facing content (blogs, products, profiles, scenarios, syllabus) is translatable into the selectable languages. - AI-powered batch translation fills missing translations automatically. --- ## 3. URL Map Source: The platform exposes these public URLs. Authenticated URLs are listed for product-map context; their content requires a session. ### Public (no login required) | Feature | URL | |---|---| | Marketing home | `/` | | Pricing and plans | `/pricing` | | Single product details | `/product/{slug}` (for example `/product/full-seat`) | | Features overview | `/features` | | Features — Simulator | `/features/simulator` | | Features — Questions | `/features/questions` | | Features — Scenarios | `/features/scenarios` | | B2B hub | `/b2b` | | B2B — Flight schools | `/b2b/flight-schools` | | B2B — Flight instructors | `/b2b/flight-instructors` | | B2B — Training providers | `/b2b/training-providers` | | B2B — Simulation centers | `/b2b/simulation-centers` | | B2B — Universities | `/b2b/universities` | | B2B — Airport management | `/b2b/airport-management` | | B2B — Aviation authorities | `/b2b/aviation-authorities` | | B2B — Partners | `/b2b/partners` | | B2B — Development | `/b2b/development` | | Blog index | `/blog` | | Wiki index and search | `/wiki` | | FAQ | `/faq` | | Changelog | `/changelog` | | Contact form | `/contact` | | Privacy policy | `/privacy` | | Cancellation policy | `/cancellation` | | Login | `/login` | | Register | `/register` | | Forgot password | `/forgot-password` | | Confirm email (link target) | `/confirm-email` | | Public user profile | `/profile/{username}` | | Aviation-tools hub | `/tools` | | Aerodrome finder | `/tools/aerodrome`, `/tools/aerodrome/{ICAO}` | | Frequency finder | `/tools/frequency`, `/tools/frequency/{ICAO}` | | Flight-school directory | `/tools/flightschool`, `/tools/flightschool/{slug}` | | Flight-instructor directory | `/tools/flightinstructor`, `/tools/flightinstructor/{slug}` | | Blog article | `/blog/{slug}` | | Wiki article | `/wiki/{slug}` (served via the catch-all CMS route) | | Lection (CMS-served public form) | `/lections/{slug}` | ### Authenticated user area (requires login and completed onboarding) | Feature | URL | |---|---| | Home dashboard | `/home` | | Onboarding completion | `/home/complete-setup` | | Mobile app account setup | `/setup-app-account` | | Support chat (fullscreen) | `/home/chat` | | ATC Simulator | `/home/school/simulator` | | Scenarios — list | `/home/school/scenarios` | | Scenario — detail | `/home/school/scenarios/{id}` | | Exam Questions — licence picker | `/home/school/questions` | | Exam Questions — by licence | `/home/school/questions/{license}` | | Exam Questions — single question | `/home/school/questions/{license}/{category}/{number}` | | Exam preparation — list | `/home/school/questions/{license}/exampreparation` | | Exam preparation — running exam | `/home/school/questions/{license}/exampreparation/{exam}` | | Exam result | `/home/school/questions/{license}/exampreparation/{exam}/result/{completion}` | | Lections (learning modules) | `/home/school/lections` | | Lections — alternate sidebar layout | `/home/school/lections-second` | | Single lection reader | `/home/school/lections/lection-{id}` | | Listening Trainer | `/home/school/training/listening` | | Spelling Trainer (NATO/ICAO) | `/home/school/training/spelling` | | Training hub | `/home/school/training` | | Syllabus / study explorer | `/home/school/syllabus` | | Courses index | `/home/school/courses` | | Course detail | `/home/school/courses/{id}` | ### Settings (requires login) | Feature | URL | |---|---| | Settings hub | `/home/settings` | | Account and profile | `/home/settings/account` | | Notifications | `/home/settings/notifications` | | Theme (light/dark) | `/home/settings/theme` | | Payment methods | `/home/settings/payment-methods` | | Subscriptions (cancel/resume) | `/home/settings/subscriptions` | | Past purchases | `/home/settings/purchases` | | Redeem voucher | `/home/settings/redeem-voucher` | | Appointments | `/home/settings/appointments` | | Affiliates / referrals | `/home/settings/affiliates` | | Flight-instructor dashboard | `/home/settings/flightinstructor` | | Flight-school dashboard | `/home/settings/flightschool` | --- ## 4. Feature Behaviour (stable facts) Source: This section describes stable product behaviour. It deliberately avoids volatile UI detail (exact button labels, layout) — for the current interface, use the live rendered pages. ### ATC Simulator — `/home/school/simulator` - Supports voice input (record a transmission, which is transcribed) and text input. - The user's home airport and callsign are derived from their profile; setup also covers aircraft type, registration/callsign, squawk, flight rule (VFR/IFR), and optional destination/frequency. - A session can be reset to start fresh, or resumed if not sealed. - Free tier: 10 transmissions per day. A separate AI-cost cap of roughly 5 EUR/day applies to all users (free and paid). ### Scenarios — `/home/school/scenarios` - Scenarios are structured training built on top of the simulator: a briefing plus a pre-configured airport, conditions, and objectives. - Opening a scenario embeds the simulator pre-configured for that scenario; the user transmits as in the standalone simulator. ### Exam Questions — `/home/school/questions` Public name: "Exam Questions". The content is two separate sets: - **ECQB-PPL question bank** for SPL, PPL(A), PPL(H), BPLG, BPLH, PU. Sourced from the European Central Question Bank (ECQB). - **German radio-certificate questions** for BZF I, BZF II, and AZF. These are separate from the ECQB bank. - Browse mode: pick a licence, choose a category, answer questions one by one with progress tracking. - Feedback shows whether the answer was right or wrong and the correct answer. It does not provide a detailed per-question explanation. - Exam mode: an exam can carry an optional time limit; a time limit is not always present and is not enforced server-side. Pass threshold is 75%. - Free daily sample: 10 questions per day from one daily-rotating catalog per licence (the rotation is deterministic — the same catalog all day). ### Listening Trainer — `/home/school/training/listening` - Two modes: Dictation (transcribe the ATC audio) and Readback (provide the correct pilot readback). - Answer by voice (transcribed) or text; answers are scored 0–100 with feedback. - Audio clips come from a curated pool; unused entries are prioritised per user, and community voting provides quality control. - Free tier: 15 exercises per day. Unlimited on a paid plan. ### Spelling Trainer — `/home/school/training/spelling` - A callsign appears and the user spells it phonetically (NATO/ICAO), by text or voice. - Scored with a Levenshtein-distance algorithm that accounts for acceptable variations. - Always free and unlimited; no subscription required. ### Lections (learning modules) — `/home/school/lections` - Multi-page learning modules, technically Blog entries served under `/lections/`, numbered sequentially. - Completion is tracked per page and overall; some lections are locked behind access control (purchasable). ### Syllabus / study explorer — `/home/school/syllabus` A free study explorer (login required) for navigating the curriculum: - Text search plus filters by category, level, and status. - Desktop tree-table view; mobile nested/collapsible drill-down. - Completion cascade: checking a goal marks its descendants and rolls the state up to its ancestors. - Each goal links to related content: questions (some paywalled), blogs, lections, and scenarios. ### Pricing and Subscriptions (overview) - `/pricing` lists recurring plans and one-time day licences. Pricing is dynamic and rendered from the live product catalogue — see section 7 and the live catalogue; do not rely on cached numbers. - `/home/settings/subscriptions` is where users manage active subscriptions (Cancel/Resume — see section 7). - `/home/settings/redeem-voucher` accepts a voucher code in `XXXX-XXXX` format. ### Support chat — `/home/chat` - Fullscreen view with a session sidebar; the same chat is reachable from the floating support button elsewhere. - The user can start a Support conversation (AI first, human can take over), a Bot conversation (AI only), or a Bug report (routed to the development team). ### Home dashboard — `/home` Personalised landing after login. Surfaces quota usage (Simulator, Listening, Questions), continue-learning strips (courses, scenarios, lections), stats, recent activity, latest changelog entries, and a support widget. --- ## 5. ATC Simulator — Detail Source: The ATC Simulator is Learn ATC's core feature. A domain-trained ATC AI plays a realistic air-traffic controller while the user acts as a pilot, communicating via text or voice using ICAO phraseology. ### Starting a session 1. Go to the Simulator (`/home/school/simulator`). 2. Configure flight setup: airport (ICAO code), aircraft type (default: Cessna 172), registration/callsign, squawk (default: 1200 VFR), flight rule (VFR/IFR), optional destination, optional frequency. 3. Start transmitting. ### Communication methods - Text input: type a transmission (for example "Frankfurt Tower, D-EULT, ready for departure runway 25L") and send. - Voice input: record via microphone; speech is transcribed and sent to the ATC AI. ### ATC responses Each AI response includes: - Display text — digits and symbols shown naturally (for example "Runway 25L, wind 180 degrees, 12 knots"). - Audio — text-to-speech with ICAO phonetics (for example "Runway two five left, wind one eight zero degrees, one two knots") and a realistic ATC-radio sound. The AI has access to airport data (runways, frequencies) and contextual weather to ground its responses. ### Flight-instructor feedback (optional) When enabled, each response additionally shows: what the user did right or wrong, expected behaviour, and example correct transmissions. ### Session management - Sessions have unique UUIDs tracking all transmissions with full metadata. - Sessions can be "sealed" (reset) to start fresh, or resumed if not sealed. ### Scenario mode Structured training with specific objectives: 1. The user selects a scenario (for example "VFR departure from EDDF"). 2. The scenario defines airport, aircraft, conditions, and objectives. 3. The AI tracks conditions in real time: completed / failed / uncompleted. 4. The session ends with status: ongoing / completed / failed. 5. The AI provides a performance summary. ### Voice variety Multiple TTS voices are used, assigned per facility/country so that different ATC stations sound distinct while the same facility keeps a consistent voice within a session. ### Access and limits | Tier | Limit | |---|---| | Free / demo | 10 transmissions per day | | Paid subscriber | Unlimited (Full Seat, Simulator, or Simulator Day License) | A separate AI-cost cap of roughly 5 EUR/day applies to all users (free and paid). When free transmissions are exhausted, a purchase prompt appears with available products. Callsign handling (phonetic rendering) is automatic inside the simulator — it is not a standalone tool. ### Simulator AI rules (what the AI guarantees) 1. Clearance gating — never issues taxi/lineup/takeoff unless the pilot has transmitted callsign, current position, and intention. 2. Silence — when the pilot does not speak, the AI does not produce unsolicited ATC calls. 3. Language — responds in the pilot's language; never forces "English only". 4. Frequency discipline — only responds on the correct frequency; suggests the correct one if wrong. 5. Essential corrections only — corrects safety-critical items (runway, altitude, heading, squawk), not cosmetic differences. --- ## 6. Training Features Source: ### ATC Listening Trainer How it works: 1. The user opens the Listening Trainer from the school sidebar. 2. Selects exercise type: - Dictation — transcribe the ATC audio word for word. - Readback — provide the correct pilot-readback response. 3. Audio plays (can be replayed unlimited times). 4. The user answers (text or voice) and submits. 5. The AI scores the answer 0–100: - Dictation compares to the correct transcript. - Readback evaluates semantic correctness (callsign, instructions, phraseology). 6. Feedback is shown, then the user advances to another exercise or skips if audio is unclear. Details: - Audio clips come from a curated pool of ATC transmissions (each with audio, transcript, airport, callsign, metadata). - The pool prioritises unused entries for each user — completed or skipped entries do not recur. - Community voting (thumbs up/down) on pool entries provides quality control. - Historical scores are tracked per user. Access: | Tier | Limit | |---|---| | Free | 15 exercises per day | | Paid (`trainers` or `full-seat`) | Unlimited | | Day licence | 24-hour access | ### NATO/ICAO Spelling Trainer How it works: 1. Open the Spelling Trainer from the school sidebar. 2. A random aviation callsign appears (for example `D-EABC`, `N172SP`). 3. Two modes: - Text — type the phonetic spelling (for example "Delta Echo Alpha Bravo Charlie"). - Voice — speak it into the microphone (AI-transcribed). 4. The AI scores via a Levenshtein-distance algorithm (accounts for acceptable variations). Details: - Callsign formats: German (`D-xxxx`), US N-numbers, and various international formats. - Pronunciation-audio files available for each letter/number. - Progress is tracked with history and a reset capability. - Always free and unlimited — no subscription required. ### Exam Questions Public name: "Exam Questions". The content is two separate question sets: - **ECQB-PPL question bank** for SPL, PPL(A), PPL(H), BPLG, BPLH, PU. Sourced from the European Central Question Bank (ECQB). - **German radio-certificate questions** for BZF I, BZF II, and AZF. These are separate from the ECQB bank. How it works: 1. Open Exam Questions from the school sidebar. 2. Select a licence. 3. Browse available catalogs (subject areas within that licence). 4. Enter a catalog to practise questions. 5. Multiple-choice, 1 correct answer, immediate feedback. 6. Feedback shows whether the answer was right or wrong and the correct answer. It does not provide a detailed per-question explanation. 7. Progress is tracked per catalog: answered / correct / total with completion percentage. Exam mode: an exam can carry an optional time limit; a time limit is not always present and is not enforced server-side. Pass threshold is 75%. Free public sample: one catalog per licence rotates daily as a free sample (10 questions). The rotation is deterministic — the same catalog all day. Access: | Tier | Limit | |---|---| | Free | Only the daily public sample (10 questions from 1 catalog per licence) | | Paid (`questions` or `full-seat`) | All catalogs, all questions, exam mode | | Day licence | 24-hour access | Multi-language with locale fallback chains. Some questions include images (aerodrome charts, weather maps). ### Learning Modules (Lections) How it works: 1. Open Lections from the school sidebar. 2. Browse lections by category. 3. Navigate through pages (next/previous). 4. Some pages have interactive elements (quizzes, exercises). 5. Progress is tracked: resume where you left off; complete all pages to finish. Details: - Lections are technically Blog entries served under `/lections/`. - Multi-page (child blog entries), numbered sequentially. - Completion states: New -> Started -> Finished (per page and overall). - Some lections are locked behind access control (purchasable). ### Syllabus / study explorer A free study explorer (login required) that maps the curriculum to platform content. 1. Open the Syllabus from the school sidebar. 2. Browse by licence/category, with text search and filters (category, level, status). 3. Navigation: desktop tree-table view; mobile nested/collapsible drill-down. 4. Completion cascade: checking a goal marks its descendants and rolls the state up to its ancestors. 5. Each goal links to related content: questions (some paywalled), blogs, lections, and scenarios. ### Blog / Wiki / Knowledge Base All four content types are served by the same content engine. Distinguished by URL prefix: - `/blog/` — news, updates, educational articles. - `/wiki/` — reference articles and documentation. - `/faq/` — frequently asked questions. - `/lections/` — learning modules (see above). Features: multi-language, rich content, auto-generated table of contents, comments, ratings, access control, full-text search. ### Streaks A daily streak counter increments each day the user completes at least one exercise (any type). It is visible on the dashboard. --- ## 7. Subscriptions and Billing Source: Pricing is dynamic. Do not document static prices here — link to `/pricing` and the live product catalogue. ### Payment system All payments are processed via Stripe. Users pay through Stripe Checkout (hosted payment page) or by direct card charge if a payment method is already saved. ### Products Sellable product slugs: - `full-seat` - `simulator` - `questions` - `trainers` (buying it grants the `listening-trainer` feature/permission) - `courses` - `lectures` - `community` - `api` - `simulator-day-license` - `questions-day-license` Note: `listening-trainer` is a feature/permission slug, not a sellable product. The sellable product that grants it is `trainers`. There is no listening-trainer day-license product. Always free (no subscription needed): Lections (free ones), NATO/ICAO Spelling Trainer (unlimited), Syllabus / study explorer, Aviation Tools (Aerodrome Finder, Frequency Finder), Blog and Wiki, Flight-School Directory, Flight-Instructor Directory. Free daily limits (without subscription): | Feature | Daily limit | |---|---| | Simulator | 10 transmissions (plus a ~5 EUR/day AI-cost cap that applies to all users) | | Listening Trainer | 15 exercises (unlimited on a paid plan) | | Spelling Trainer | Always free and unlimited | | Exam Questions | 10 questions from 1 daily-rotating catalog per licence | ### Subscribing 1. User goes to `/pricing` or `/product/{slug}`. 2. Selects plan and billing interval. 3. Accepts the cancellation-waiver checkbox. 4. Confirms the purchase (recurring subscription or one-time day licence). 5. If a payment method is on file, a direct charge is attempted (with 3-D Secure if needed). 6. If no payment method is on file, the user is redirected to Stripe Checkout. 7. After payment, roles and permissions are granted automatically within seconds via background jobs. ### Cancellation There is no Pause action. The available actions are Cancel and (during the grace period) Resume or Cancel immediately. 1. User goes to Settings -> Subscriptions (`/home/settings/subscriptions`). 2. Cancels the subscription and confirms. 3. Grace period begins: full access continues until the current billing period ends, with no further charges. 4. During the grace period, two options: - Resume — undoes the cancellation and continues as normal. - Cancel immediately — terminates access right now. 5. After the grace period: access expires, data is preserved, and the user can re-subscribe at any time. ### Payment methods Managed at Settings -> Payment Methods (`/home/settings/payment-methods`): - Add new cards via Stripe's secure form. - Set a default for automatic renewals. - Remove cards (cannot remove the last card if there are active subscriptions). - Supports all Stripe-accepted methods (Visa, Mastercard, Amex, regional methods via Checkout). ### Invoices Generated and stored by Stripe. Viewable in Settings -> Subscriptions by expanding a subscription. PDF download available per invoice. Includes proper tax information. ### VAT / tax | Customer | Location | Tax | |---|---|---| | Individual (B2C) | Anywhere | German VAT | | Business (B2B) | Germany | German VAT | | Business (B2B) | EU outside Germany, valid VAT ID | Reverse charge (0% VAT) | B2B customers enter their VAT ID in Settings -> Account. The ID is validated in real time against the official EU VIES database. Reverse charge is applied automatically if valid and outside Germany. ### Subscription renewal - Auto-renews at the end of each billing period, charging the default payment method. - A renewal-confirmation email is sent (deduplicated per billing period). - On payment failure: Stripe retries per its retry schedule, the user gets a "Payment Failed" email, access continues during retries, and the subscription is eventually cancelled if all retries fail. ### Vouchers and discounts Vouchers and discounts can be redeemed at Settings -> Redeem Voucher (`/home/settings/redeem-voucher`). Code format: `XXXX-XXXX`. Gift vouchers can be purchased as a product; the recipient receives a code by email and redeems it from their account. ### Common support scenarios - "I subscribed but don't have access": Access is granted via background jobs and may take a few seconds. The user should refresh the page. If the issue persists beyond 30 seconds, contact support. - "I was charged but the page says I need to subscribe": Same as above — background-job delay. Wait 30 seconds and refresh; if it persists, contact support with transaction details. - "I cancelled but was still charged": Cancellation takes effect at the end of the current billing period. Check whether the charge was for the already-paid period. If it appears to be an error, contact support. - "How do I get a refund?": Contact `support@learn-atc.com` with transaction details and reason. Refunds are processed case by case. --- ## 8. Support Chat — Product Description Source: ### Chat types | Type | AI responds? | Human handoff? | Use case | |---|---|---|---| | Support | Yes, initially; a human can take over | Yes | Standard support requests | | Bot | Always | No | The user explicitly chose AI-only chat | | Bug report | Always | No (report routed to the development team) | AI-guided bug collection | ### How support mode works 1. The user opens the chat widget (bottom-right on any page). 2. The user chooses a Support, Bot, or Bug-report conversation. 3. In Support mode, the AI responds immediately. If a human team member joins the conversation, they take over from the AI. 4. In Bot mode, the AI is the sole responder. If the AI cannot help, the user is suggested to open a Support chat or use the contact form. ### Session lifecycle - Sessions are tied to the user's device and survive browser close/reopen. - Messages are persisted and reloadable on reconnection. - A sound notification plays on new messages (even with the widget minimised). ### Image and file handling Users can upload screenshots or photos; the AI can analyse uploaded images. ### Personalisation Support may use account and session context to personalise responses, in accordance with the privacy policy. --- ## 9. Aerodrome Database Source: Comprehensive airport database synced from OpenAIP: - Many airport types (Airport, Glider Site, International Airport, Heliport, Military, UL Site, and others). - Multiple ATC frequency types per aerodrome. - Full runway details (heading, state, navigation aids). - Geospatial proximity search. - Auto-refresh from OpenAIP (rate-limited per aerodrome). --- ## 10. User System Source: - Registration with email and password or Google OAuth. - Email verification is required. - Forgot-password flow via email. - An onboarding wizard at `/home/complete-setup` must be completed before accessing the rest of `/home`. - Public user profiles available at `/profile/{username}`. - Activity streaks (consecutive days of practice). - Referral programme (`/home/settings/affiliates`). - Account deletion is available from Settings -> Account (`/home/settings/account`). --- ## 11. Aviation Tools Source: Public, free tools: - Aerodrome Finder — `/tools/aerodrome` — search by ICAO, name, or city with map, runways, frequencies, and nearby alternatives. - Frequency Finder — `/tools/frequency` — look up ATC frequencies by ICAO code. - Flight-School Directory — `/tools/flightschool` — searchable directory with map. - Flight-Instructor Directory — `/tools/flightinstructor` — instructor profiles with certifications, operating areas, and booking. Not standalone tools: distance and heading live inside the aerodrome detail page; callsign handling is automatic inside the simulator and spelling trainer. There are no `/tools/distance`, `/tools/heading`, or `/tools/callsign` pages. --- ## 12. Flight-School and Instructor Directories Source: - Flight-school directory at `/tools/flightschool` — searchable directory with map visualisation, rich profiles, member management, ratings, and structured profile-data enrichment. - Flight-instructor marketplace at `/tools/flightinstructor` — instructor profiles with certifications, operating areas (GeoJSON), services, hourly rates, gallery, student management, and booking integration. ### Appointment booking Full lifecycle (pending -> confirmed -> completed/cancelled/no-show/rescheduled). Supports authenticated and guest bookings with flight instructors. Email and push notifications. Manageable at `/home/settings/appointments`. ### Rating and review system Polymorphic ratings (thumbs up/down or 1–5 stars) with threaded replies, moderation, and guest-review support. Used on blogs, scenarios, instructors, schools, listening exercises, simulator transmissions, and similar entities. --- ## 13. Design Identity Source: - Blue-dominant palette (deep aviation blue primary, sky-blue secondary). - Clean, modern aesthetic with generous whitespace. - Font: Manrope — a geometric sans-serif. - Soft rounded corners, subtle shadows, light backgrounds. - Mobile-first responsive design. --- ## 14. Important Limitations Source: - The platform complements real ATC training; it does not replace human instruction. - The simulator AI may occasionally make mistakes, especially in complex scenarios. - No formal certification or official exams — training and practice only. - Weather in the simulator is generated contextually; it is not based on real METAR data. - Free / demo users have daily limits (10 simulator transmissions, 15 listening exercises, 10 sample questions per day). A separate ~5 EUR/day AI-cost cap applies to all users. --- ## 15. Robots Policy Source: The site disallows crawling of authenticated and transient paths: `/home/`, `/dev/`, `/confirm-email`, `/warmingup`, `/setup-app-account`, `/warehouse/`. Image- and link-preview crawlers are explicitly allowed under `/warehouse/` so social-preview images resolve. The explicit allow list includes: Googlebot-Image, facebookexternalhit, Twitterbot, LinkedInBot, Slackbot, Slackbot-LinkExpanding, WhatsApp, Discordbot, TelegramBot. The sitemap is published at and includes `hreflang` entries. There are 10 selectable UI languages; `ru` is hreflang-only (SEO). --- ## 16. Maintenance Notes for This File This file is hand-curated and should be updated whenever public URLs or features change. It is served at . Update triggers: - New public URL appears in the routing -> add it to section 3 (URL Map). - Stable feature behaviour changes -> update section 4 (Feature Behaviour). Avoid documenting volatile UI labels here. - Subscription products, slugs, or daily limits change -> update section 7. - New selectable UI language -> update section 2. - New aviation tool or directory feature -> update sections 11 and 12. Treat the live rendered pages and the live product catalogue as canonical when reconciling. The knowledge endpoints (`/api/platform-knowledge`, `/api/platform-knowledge/simulator`, `/api/platform-knowledge/subscriptions`, `/api/platform-knowledge/support-chat`, `/api/platform-knowledge/training`), `/sitemap.xml`, and `/robots.txt` are inputs to cross-check, and may lag behind the deployed product.