Recently I was challenged to upgrade my level of knowledge regarding web-based solutions. My experience has been in building business solutions making use of many technologies like SSRS, SSIS, ASP.NET Web API’s, SQL Server, Power BI, Microsoft Dynamics, and more. I’ve built portions that all exist in a full web application, and I’ve even deployed solutions to Azure. Still, I have don’t have much experience putting them all together in a single solution or product. I am accomplishing this, and as I do it, I plan to document my work here on this blog.
The first challenge I ran into was that I needed something to build. I know that if I don’t care about the project, it’ll just go by the wayside, and I’ll never finish it. Also, I didn’t want to take anything on that was going to be over my head. I have kids that play in sports (Baseball/Softball, Basketball, Soccer, and more). Thus far in my parental career, I have yet to interact with a sports league website that just simply allowed parents to keep track of practices and games, and know what is going on with their child’s sporting event. I’m sure there is a decent solution out there, I’ve just never seen it. So, I’m going to build one. A sports league solution should be a reasonably straightforward (famous last words) solution. I need to learn React, so my solution will be a React front end, with a .NET Core 3 Web API back-end.
Furthermore, I was given the challenge to build the solution using the CQRS pattern. I’ve never explicitly implemented that pattern before, but I will be figuring out how to during this project. The back-end database will be an Azure SQL instance. All components will be deployed to Azure, with a CI/CD pipeline built using Azure DevOps.
Here are the links to what I am going to be building:
- Azure DevOps Project: https://dev.azure.com/JamesShinevar/LeagueTrackr
- Infrastructure Repository: https://github.com/jshinevar/league-trackr-azure-templates
- Front-End Repository: https://github.com/jshinevar/league-trackr
I know I don’t have the repositories yet but there will also be one for the Web API, and the database. When I create those, I will come back and update the links.
As I am writing this, I am also open to suggestions, as long as they aren’t in the realm of Use x framework instead of y, or deploy to a cloud provider instead of b. If a suggestion is provided, I ask that a good logical reason be provided. This is a learning journey