Tarbik Map
Multi-player web game where the players have to guess the location of a random image shown.
Where?
Source code available at GitHub.
Example web app runs at https://tarbikmap.azurewebsites.net.
Used Technologies
- ASP.NET Core
- React
- TypeScript
- Docker
- NetTopologySuite
- xUnit.net
- SignalR
- Selenium
- Jenkins Pipeline
- OpenStreetMap APIs (Nominatim, Overpass)
- Google APIs (Street View Static API, Geocoding API)
- Wikidata
Implementation Details and Challenges
This project was an opportunity to try current technologies and some strict code quality ideas (as of 2020):
- using modern and statically typed languages - C# for server and TypeScript for client
- static code analysis - using nullable reference types, .NET Analyzers and StyleCop
- automatic code formatting enabled across all programming languages (to avoid unnecessary differences in formatting)
- building in Docker containers for stable and reproducible building environment
- development in Docker containers (using Visual Studio Code, Remote - Containers extension) for stable and reproducible development environment (containers with all technologies needed for development are automatically configured, including separate Selenium Hub container)
- complete continuos delivery pipeline (using Jenkins) including code static analysis, unit tests, UI tests (Selenium); really executing after each commit and automatically deploying the application at the end if tests pass
- simple and clean configuration management - all changing configuration is stored in one place, without any default values or fallbacks at arbitrary places