Project Description
Version 3 · Add the four-page reference capture, rebuild findings, and browser/source boundaries.
Troyen Website — Project Description
Document set version: 0.2.0
Date: 2026-09-05
Status: Framework-neutral Python foundation created and the supplied reference site captured; the replacement website has not yet been implemented or deployed.
Purpose
Troyen Website is the public-facing website for Troyen Data. It explains the structured, time-sensitive racing-data service, introduces its API integration model, presents coverage and subscription information, answers common questions, documents key API contracts, and lets prospective customers request API access.
Audience
- Software teams integrating racing data into applications, analytics pipelines, and operational systems.
- Prospective customers assessing coverage, update timing, subscription options, and API access.
- Existing customers looking for API guidance, integration notes, support, and billing information.
Reference Scope
The replacement site will build on the verified content and workflows of:
https://troyendata.com/https://troyendata.com/Home/FAQPagehttps://troyendata.com/Home/ApiDocumentation#endpointhttps://troyendata.com/Home/IntegrationNotes
The established experience includes:
- Troyen Data service and coverage overview.
- RESTful API and JSON integration information.
- Subscription and pricing-enquiry information.
- API-key and subscription enquiry forms.
- FAQ content covering credentials, rate limits, regions, refresh timing, subscriptions, and billing.
- Race-card, meeting, and race-list API documentation.
- Integration guidance covering contract scope, JSON structures, schema evolution, representations, discipline neutrality, statistics, nullable fields, time fields, parsing, and stability.
Technical Direction
The project type is Python. The local foundation contains Python package metadata, an importable troyen_website package, tests, and a repeatable reference-site capture utility. No production web framework has been selected; Django, Flask, FastAPI, or another framework must not be assumed until the architecture is confirmed.
Local project:
C:\Users\Robert\Projects\Troyen\TroyenWebSite
Source repository:
https://github.com/QuantumDataGroup/TroyenWebSite.git
The source repository was empty when the project was initialized.
Reference Capture
The four supplied pages returned HTTP 200 and were captured with their same-origin browser assets. The local manifest records source URLs, content types, byte counts, SHA-256 hashes, external CDN references, and capture results. The raw capture is intentionally kept in the ignored working/reference-site area; the versioned capture utility is tools/capture_reference_site.py.
The deployed source exposes HTML, CSS, inline JavaScript, a public image, and referenced browser dependencies. It cannot expose the original Razor views, C# controllers, database code, authentication implementation, deployment configuration, or other server-side source.
Rebuild Findings
- Route naming and generated scoped-style attributes indicate an ASP.NET Core MVC/Razor implementation.
- The current browser presentation uses Tailwind through its CDN, Font Awesome 5.15.3, particles.js, and a same-origin theme stylesheet.
- Several pages contain nested document shells, and the homepage contains duplicate
apiKeysFormIDs. - The shared enquiry form contains an inconsistent
comapnyNamefield spelling outside the homepage-specific form. - These defects should be corrected in the rebuild instead of reproduced.
Known Integration Behaviour
The current public API-key form calls /api/Auth/getApiToken. The homepage also exposes browser-side calls for API-token and subscription workflows. The replacement site's final backend integration must be confirmed before these workflows are enabled.
Branding
Use Troyen Data as the working brand name. The current FAQ contains inconsistent instances of “Troyan Data”; these should not be carried forward without an explicit branding decision.
Constraints and Open Work
- Preserve accurate public content while improving the implementation.
- Keep the project Python-based unless Robert explicitly changes the project type.
- Do not expose credentials, private API details, or production data.
- Confirm the Python web framework, production form integrations, and deployment target before implementation.
- Confirm the final information architecture, visual direction, and content changes before replacing the live site.