Giter Site home page Giter Site logo

volleymanagement / volley-management Goto Github PK

View Code? Open in Web Editor NEW
11.0 8.0 6.0 8.99 MB

Volley Management API component. Provides API to create and manage Volleyball tournaments.

License: MIT License

C# 88.23% PowerShell 2.81% Shell 1.21% JavaScript 0.32% Gherkin 6.79% Dockerfile 0.64%
dotnet c-sharp web-api-2 volleyball sports

volley-management's Introduction

README

Welcome to Volley Management project repository

Status

Build status Build Status

Work Pulse

Board Status

🚧 ⬇ Not actual. Will be fixed soon.

Sonar Quality Gate LoC Coverage

Maintainability Security Reliability

What is this repository for?

The goal of the project is to create system to manage Volleyball sport events for amateur leagues. Also it serves as a training ground to try different engineering and architectural approaches to learn in a safe environment. See more history here: Volley Management v3 - Διαχειριπη

Current Version: v3

How do I get set up?

Summary of set up

Project uses .NET Core and Angular at the moment. Recommended tools are VS 2019 (any edition) and VS Code. Although it should run using any other setup , I hope :)

Target framework is .NET Core 3.0.

Dependencies

All .NET dependencies are managed via NuGet. Angular uses NPM.

Development Environment Setup

Follow this Guide.

Deployment instructions

Prepare Azure Storage

In order to configure Azure Storage locally you need to run migrations to setup all required tables.

  1. Prepare migration. Run following command:

    ./migrations/publish-azure-storage-migration.ps1

  2. Run migration itself:

    cd ./migrations/azureStorageMigration

    dotnet VolleyM.Tools.MigrationTool.dll

Run Code

To run code locally it is recommended to use Docker to spin up local instance and test. This options is the closest to the production setting. You have few options there:

  • Use VS Container Tools and run start project using Docker launch profile. VS injects few useful items like debugger so you'll be able to debug code running inside Docker.

  • Build and run container manually. See /dev-env folder for some scripts.

If you want to shorten development cycle you can run application locally. Use VolleyM.API launch profile. It will execute dotnet run.

In production we use Azure DevOps Pipeline to build and deploy code.

How to run tests

Instructions.

Additional references

Who do I talk to❓

  • All questions should be directed to Sergii Diachenko (sdiachenko AT outlook DOT com)

volley-management's People

Contributors

25lion52 avatar alex-lapin avatar andriisherman avatar apadenko avatar artosonat avatar caplek avatar dependabot[bot] avatar dmshapoval avatar domatella avatar geiko avatar gekas avatar gorbunowartem avatar kolobovnykova avatar macosha avatar maxprisich avatar mbocharskyi avatar natalia94 avatar nataliiabidiuk avatar pnovichikhin avatar rinoir avatar rudenko-den avatar ryndin avatar sdiachen avatar stripedl avatar tapch avatar tdaria avatar tesaurus avatar vikiryn avatar viznyaks avatar vladislavantonyuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

volley-management's Issues

Enable SonarLint

  • make SonarLint pull setting from our sonar
  • update wiki on how to configure SonarLint

Game stats

у нас кстати табло вместе со статистикой, но пока локально на компе и мы думаем сделать её на серваке и чтобы у каждой встречи была статистика которая будет на странице своей (как видео) и ссылка встречи как раз должна вести на эту страницу и потом на ней ссылка на видео

AppVeyor not importing all tests

When we Import test result into AppVayor it loses couple of tests.

Console reports 529 tests passed, AppVeyor shows 507.

Investigate and fix :)

Improve defect localization for Standings tests

Instead of one "Get(Pivot)Standings_GameResultsAllPossibleScores_CorrectStats" case we should have 4:

"Get(Pivot)Standings_GameResultsAllPossibleScores_CorrectPointStats"

"Get(Pivot)Standings_GameResultsAllPossibleScores_CorrectGamesStats"

"Get(Pivot)Standings_GameResultsAllPossibleScores_CorrectSetsStats"

"Get(Pivot)Standings_GameResultsAllPossibleScores_CorrectBallStats"

AC:

-[] Test should fail only if a specific part of calculation logic is broken. E.g. if we have defect in Games statistics calculation only this test should fail

  • #181 Test for Correct Point

  • #182 Test for Correct Games

  • #183 Test for Correct Sets

  • #184 Test for Correct Ball

  • Delete tests "Get(Pivot)Standings_GameResultsAllPossibleScores_CorrectStats"

Manage teams: show divsions and groups

On manage teams page teams should be grouped by divisions and groups

AC:

  • User should see clear separation between teams playing in different divisions and groups

  • #188 Group teams

  • #190 Change UT

  • #189 Test results

Same position for equal teams

Business logic should calculate positions:

Positions are set according to standings If there are several teams equal by all metrics positions should be equal

Change project structure

Change repo file structure to closely match common templates:

root:

  • src
    -- VolleyManagement.Backend
    -- volley.org.ua_integration
    -- VolleyManagement.Frontend
    -- *.sln file
  • build (move contents of BuildFiles here)
  • tests (Tests for the backend)
  • <remove .nuget folder>

AC:

  • make sure build scripts, tests, solution build and angular build are working
  • update CI for proper Cake build path (edit appveyor.yaml)

Remove GMail based mail service

Remove GMail mail service and all related data as it's not needed anymore

Sabtasks:

  • #116 Find all connection to GMail service
  • #118 Remove GMail services and all related date

Local Dev Secrets: Page

Create a page to guide and explain how to obtain secrets for local dev environment.

  • It should guide dev on how to create AppSettingsSecrets file for own usage.

  • Add a note about security risks involved with commiting secrets to the source control

  • Note: mention that for Prod Mail service we use SendGrid account(but we won't provide guide on how to obtain it's data). For Local dev we use DebugMailService which displays emails in the console.

Related to #34

Activate tournament

As an admin I want to be able to activate previously archived tournament.

Only TournamentAdmin or Admin can activate tournament.

Subtasks:

  • #233 Activate option at tournament detail

  • #234 Alert message

  • #235 Add ActionLink

  • #237 Manual QA tests

  • #245 Unit test

Show penalty summary

As an user I want to be able to see information about penalties under standings table

AC:

  • I can see all penalties for specific division under standings table

  • Each penalty should display teams who were playing, team which was penalized, amount and reason

  • Penalties are ordered by the date

Calculate standings according to amount points that team could have earned

As we might have odd number of teams in division during tournament different teams have different number of games played. This slightly affects standings as our current approach does not account number of played games.

Order teams by ScoreRating: ScoreRating=Points/(TotalGames*PointsPer3to0Win)

Create Code Review checklist

  • create checklist to check PRs for:
    -- Generated SQL
    -- Test naming
    -- etc.
  • integrate it in Code Review process: make sure it's always near code you are reviewing

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.