Skip to content

rmcs87/TrainingEvaluationPlatform

Repository files navigation

What is TEP - Training Evaluation Platform

TEP is a open-source project written in .NET Core for BackEnding VR Trainning Aplications.

Besides providing services for storage and edition tools; score processing; and alternative apps, such as Quizzes, this project aims to be used as self-learning PBL project by the authors. 🎓

Codacy Badge LicenseTEP CI-Workflow

(not) Running at: https://tepvr.azurewebsites.net/ (DataBase is currently down)

How to use

  • You will need the latest Visual Studio 2019 (or VS Code) and the latest .NET Core SDK.
  • The latest SDK and tools can be downloaded from link.
  • You also need an Instance of Sql Server running:
    • Docker: docker run -e 'ACCEPT_EULA=y' -e 'SA_PASSWORD=1StrongPwd!!' -e 'MSSQL_PID=Express' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest-ubuntu
    • Configure an Enviroment Variable with the ConnectionString: "ConnectionStringTep": "Data Source=localhost,1433;Initial Catalog=db_teps;User ID=SA;Password=1StrongPwd!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"

Technologies being Studied

  • ASP.NET Core 3.1 (with .NET Core 3.1)
  • ASP.NET Core with JWT Bearer Authentication
  • Entity Framework Core 3.1
  • AutoMapper
  • FluentValidation
  • MediatR
  • MSTests
  • Coverage*
  • Swagger*
  • GitHub Actions

Architecture Principles being Studied

  • Full architecture with responsibility separation concerns, SOLID and Clean Code*
  • Domain Driven Design
  • Domain Events*
  • Domain Notification*
  • Domain Validations*
  • CQRS
  • Event Sourcing*
  • Unit of Work*
  • Repository*

Study References

Architecture

  • Common web application architectures: link
  • Fundamentos de Arquitetura de Software: link
  • Modelo C4 de documentação: link
  • Services: link
  • Clean Architecture with ASP.NET Core 3.0: link
  • A Brief Intro to Clean Architecture, Clean DDD, and CQRS: link

ASP.NET Core

  • IActionResult and ActionResult: link
  • Create web APIs with ASP.NET Core: link
  • Model Binding in ASP.NET Core: link

AutoMapper

  • AutoMapper: link
  • AutoMapper in C#: link
  • 5 AutoMapper tips and tricks: link

Await/Async

  • C# Async / Await: link
  • C# Advanced Async: link

Azure

  • Deploy a WebApp: link

Caching

  • Caching in ASP.NET Core: link

CI/CD

  • Integração Contínua: link
  • Integração e entrega contínuas: pipeline CI/CD: link
  • GitHub Actions: link

Compression

  • Compression in ASP.NET Core: link

DDD

  • Arquitetura em camadas com DDD: linkparte-01-criando-arquitetura-em-camadas-com-ddd-inje%C3%A7%C3%A3o-de-dep-ef-60b851c88461)
  • Create Data Transfer Objects (DTOs): link
  • DDD ASP.NET: link
  • DDD: Repository Implementation Patterns: link
  • Domain-Driven Design: Atacando as Complexidades no Coração do Software: link
  • Services in Domain-Driven Design (DDD): link

Docker

  • Step by step - Run and Connect to SQL Server in Docker: link
  • Docker - Guia de Referência Gratuito: Docker Guide

EFC

  • Entity Framework Core: link
  • Criando uma API com ASP.NET Core 3 e EF Core 3 em menos de 15 minutos: link
  • Entity Framework Core Guide: link
  • Migrations: link

Fluent Validation

  • Fluent validation: link

Good Practices

  • Documentando o código no Visual Studio: link
  • Clean Code: link

MediatR

  • Mediator Pattern com MediatR no ASP.NET Core: link
  • Clean ASP.NET Core API using MediatR and CQRS: link
  • Validation using MediatR's Pipeline Behaviors and FluentValidation: link

Microservices

  • Monolith Decomposition Patterns: link

Logging

  • Logging in .NET Core 3.0 and Beyond: link

REST

  • SOAP vs REST vs JSON: link
  • What is REST: link
  • Architectural Styles and the Design of Network-based Software Architectures: linkfielding_dissertation.pdf)
  • JSON:API: link

Security

  • Autenticação e Autorização com Bearer e JWT: link
  • JWT com chave simétrica: link
  • Policy based role checks: link
  • Safe storage of app secrets in development in ASP.NET Core: link

Tests

  • Test-Driven Development: link
  • Unit test your code: link
  • Mocking em testes unitários com o framework Moq: link
  • Moq QuickStart: link
  • Como Testar o ASP.NET Core Web API: link
  • MSTest Cheat Sheet: link

Versioning and Swagger

  • .NET Core — API Versioning: link
  • aspnet-api-versioning: link
  • Documenting an ASP.NET Core API: link
  • How to add method description in Swagger UI in WebAPI Application: link

Others

  • Efficient post calls with HttpClient and JSON.NET: link
  • Upload files: link
  • multipart requests with JSON and file: link
  • Dependency injection: link
  • Generating realistic fake data in .NET using Bogus: link
  • Background tasks with hosted services in ASP.NET Core: link
  • No need for repositories and unit of work with Entity Framework Core: link

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages