
EA WRC – Playstation Game Results Tracker is a custom-built web application designed for rallying enthusiasts (specifically tailored around EA Sports WRC -game) to easily record, manage, and analyze stage times. The application serves as a centralized hub to track multi-driver events, compare performance across different car classes, and view real-world stage locations.
This project is the successor to an earlier version of mine, which was built from scratch as a “raw” PHP application and could only ever store a single best time per stage. The new version has been completely rebuilt on Laravel, bringing a far more capable data model and unlocking an entirely new feature called event management. Users can now start a full event — for example a head-to-head between two drivers — where every stage time driven during that event is written to the stage_times-table. From this table, the app automatically calculates cumulative times, time gaps between drivers, and pulls the best times through into the leaderboard view.



Key Features
- Event Management:Start a new multi-stage rally event, select a specific rally country, input competing drivers, and select their respective cars/classes.
- Dynamic Time Entry (Auto-Advance): Entering stage times is fast and seamless. The JavaScript-enhanced inputs automatically format the time (Minutes’Seconds”Milliseconds) and advance focus to the next field as you type, reducing input errors.
- Single Time Logging: An alternative entry mode that allows logging a single stage time for any driver, car, and rally on the fly without starting a full event.
- Stage Leaderboards: A comprehensive leaderboard page that ranks driver times globally for a rally event or drills down to compare performance on individual stages.
- Real-World Stage Locations: An integrated link page to map directory featuring interactive Google Maps links (Made by user Cosmo) to show where each legendary virtual stage is located in the real world.
- Fully Mobile-Optimized: Designed with a mobile-first approach, allowing drivers to input their times comfortably from their simulator rig or phone



Architecture & Technical Details
Backend
The application leverages Laravel’s robust MVC architecture to handle routing, database migrations, and business logic.
- Relational database structure connecting Rallies, Stages, Events, and StageTimes.
- RESTful API endpoints for loading stages dynamically and posting stage times via AJAX.
- Background logic for calculating cumulative event times and dynamically rendering leaderboard standings — the key evolution from the previous, event-less application, which only ever kept a single best time per stage.
Frontend
- Vanilla JS is used to handle dynamic DOM updates, perform asynchronous AJAX requests (for saving times without reloading the page), and power the auto-advance text-field behaviors.
- Vanilla CSS with a custom dark-themed, rally-inspired design system. Custom layouts, clip-paths, and micro-interactions ensure a premium, modern aesthetic.
- Responsive grid layouts and horizontal table scrolling guarantee smooth usability on smaller screens.
Check online or Github-repo:
