WinUI 3C#XAMLSystem integration

SimTools

A detailed overlay for sim racers to improve their experience.

Role

Full-Stack Developer

Timeframe

August 2025- March 2026

Stack

4 technologies

SimTools

Project overview

In the current sim racing market there are a few overlays that all shoot their shot at getting the most sim racers a better experience. They all fail in different aspects. This application would bring the user a better time by introducing internal tools to combine everything into a huge ecosystem.

Challenge

Learn how to develop an application outside of Unity and integrate multiple services. Find a creative way for the users to get their money's worth and pay 5 euros each month.

Solution

Use all the tools and put them together in a huge ecosystem. This way the user can get more out of the already existing tools and systems and improve their experience whilst not needing any special tools.

Outcome

It has been discontinued due to the movement of the games that were originally targeted. Despite this unfortunate ending I did learn a lot about programming outside of Unity. I have gathered experience in the WPF visual builder, C# for .NET applications, and the new WinUI3 framework. I have done both the front and back end in both frameworks*

The homepage with news outlet.

The homepage with news outlet.

A lap analysis page in progress.

A lap analysis page in progress.

The roadmap for a visual representation.

The roadmap for a visual representation.

The list of utility and page scripts.

The list of utility and page scripts.

Firebase

Account management using Firebase to keep data secure.

FirebaseUtility.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public FirebaseUtility(string apiKey, string authDomain)
{
Instance = this;
_apiKey = apiKey;
var firebaseAuthConfig = new FirebaseAuthConfig();
firebaseAuthConfig.ApiKey = apiKey;
firebaseAuthConfig.AuthDomain = authDomain;
firebaseAuthConfig.Providers = [new EmailProvider()];
firebaseAuthConfig.UserRepository = new FileUserRepository("SimRacingPlatform");
Client = new FirebaseAuthClient(firebaseAuthConfig);
var firebaseStorageOptions = new FirebaseStorageOptions();
firebaseStorageOptions.AuthTokenAsyncFactory = async () =>
{
if (CurrentUser == null)
{
throw new InvalidOperationException("No signed-in user for storage operations.");
}
var token = await CurrentUser.GetIdTokenAsync();
return token;
};
firebaseStorageOptions.ThrowOnCancel = true;
_firebaseStorage = new FirebaseStorage(STORAGE_BUCKET, firebaseStorageOptions);
}

GitHub

Used GitHub for version management and remote updating of clients.

GitHubUtility.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private static async Task<VersionData> GetNewestVersionAsync(HttpClient httpClient)
{
var requestUrl = BuildLatestReleaseUrl();
var response = await httpClient.GetAsync(requestUrl);
if (!response.IsSuccessStatusCode)
{
return new VersionData(null, "Didn't get a successful response when trying to connect to the server.");
}
var jsonContent = await response.Content.ReadAsStringAsync();
var release = DeserializeRelease(jsonContent);
var tagName = release?.TagName;
if (string.IsNullOrWhiteSpace(tagName))
{
return new VersionData(null, "Couldn't find a valid version on the server.");
}
var parsedVersion = ParseVersionFromTag(tagName);
if (parsedVersion == null)
{
return new VersionData(null, "Couldn't extract the version from the server.");
}
return new VersionData(parsedVersion, "No error occurred");
}

Interested in work like this?

I enjoy building products that need more than a surface-level redesign: the kind of work where UI, data, tooling, and operational clarity all matter together.