Fantasy F1 Online

Project Overview

Here at DCSE Limited we are always looking to learn new technologies and keep up to date with the ever-changing world of software development.  We feel that the best way to learn new skills is by applying them to a real-world project.  As a result, we decided to write a sample application that we can investigate and try out new technologies.

Born out of his love for F1, our Senior Software Engineer, Dave Clayton, came up with the idea of creating a web portal to allow groups of friends to participate in a fantasy F1 league throughout the course of a F1 season.  We decided that this web application would be perfect to showcase our skills and demonstrate to clients what we can offer.

Within this page you will find write-ups, links to blog posts and videos demonstrating some of the key skills behind this project.  The project is still in its infancy and most of the work to date has been around the design and implementation of the architecture and back end services.  This is a living document and will be frequently updated as new features are developed.

Architecture Overview

The following videos gives a high-level overview of the architecture and technologies being used in the project.

Software Architecture

This video dives a little deeper into the architecture of the software components and how the system is plumbed together.

Build/Release Pipeline

We use Azure DevOps for our CI/CD pipeline.  The following video shows how we have automated the build and deploy of our microservice components.

.NET Core Micro Services

All backend micro services are written using C# on the .NET Core platform.  We are currently using version 3.1 but have plans in the pipeline to bring this up to version 3.2. The following video demonstrates the structure of our services along with test strategies and key features.

Front-End Application

We decided to use a lightweight JavaScript framework for our front-end application.  We were initially going to use React but after doing some work using Angular 8 for a client, we decided to go for that instead.  We feel that Angular is a little nicer to work with and the ngRx implementation is superb and very powerful.  The following video shows some of the things we are doing with the front end.

Putting it all together