Giter Site home page Giter Site logo

binarystudioacademy / bsa-2021-watchdog Goto Github PK

View Code? Open in Web Editor NEW
8.0 7.0 3.0 12.61 MB

Binary Studio Academy | 2021 | .NET Watchdog platform for analyzing applications. It is an analog of Sentry, Raygun, Gatling.

Dockerfile 0.35% C# 55.74% JavaScript 0.08% TypeScript 27.25% HTML 11.11% Sass 5.40% CSS 0.07%
dotnet angular typescript scharp aspnetcore efcore elasticsearch kibana rabbitmq docker

bsa-2021-watchdog's Introduction

BSA 2021 | .NET | Watchdog

Watchdog - is an analog of Sentry, Raygun, and Loader.io. The main goal of the project is to monitor project issues affecting end users in real time. The platform provides issue details including stack trace, breadcrumbs, method\class name, OS, device, browser, location, host, and more. It can be used for both kinds of projects, for servers and client-oriented projects. Users can identify problems more quickly, enjoying visual timeline views, charts, tables and receive email reports if a new issue occurred. Also, clients can perform load testing without typing code to verify how their servers will respond to high load. They can flexibly setup tests in the portal and run them as many times as they need to.

Technologies:

Backend:

  • Platform: .NET 5
  • Network: REST, SignalR, RabbitMQ
  • Database: MS SQL Server, Entity Framework Core
  • Cloud: Azure
  • Other: JWT, Firebase, Elasticsearch, Kibana, Docker, SendGrid, StackOverflow API

Frontend:

  • Angular
  • Prime NG
  • HTML5/CSS3/SASS

Links:

Building sources

By default, apps run on the following ports:

Application Port
Watchdog.Core 5050
Watchdog.Notifier 5070
Watchdog.Collector 5090
Watchdog.Loader 5110
Watchdog.Emailer 5130
Watchdog.Frontend 80 or 4200
RabbitMQ 5672
Elasticsearch 9200
Kibana 5601

Tip: If you want to connect to the specific service outside of docker, then use "localhost" as a service name, but if both services are inside docker, use service_name from a "docker-compose" file instead.

Code quality

Make sure you read and follow .NET Quality Criteria. Also, there are some best practices for frontend development: Angular and Typescript

Docker:

  1. Make sure you have Docker and Docker Compose.
  2. Pull this repo to your machine.
  3. You can build and run all application containers via docker-compose -f docker-compose.apps.yml up -d command.
  4. You can pull and run all 3rd-party services (MSSQL Server, ELK, RabbitMQ) via docker-compose -f docker-compose.services.yml up -d command.
  5. Happy coding! ๐Ÿ˜Ž

Setup environment for local development:

  1. Download and install .NET 5 SDK.
  2. It might be usefull to have EF CLI. Install via command: dotnet tool install --global dotnet-ef
  3. Download and install LTS version of Node.js
  4. Install Angular-CLI via: npm install -g @angular/cli. What is Angular-CLI?

Extensions for frontend development (required):

  • ESLint (analysis tool that checks TypeScript\JavaScript code for readability, maintainability, and functionality errors)
  • EditorConfig (helps maintain consistent coding styles for multiple developers working on the same project)

Some extra extensions which can significantly help to work with Angular:

  • Angular Language Service (intelliSense for Angular templates)
  • Angular Snippets
  • Angular Schematics (working with Angular schematics via UI)

Environment variables

This is a list of the required environment variables:

RABBIT_MQ_USERNAME - RabbitMQ username

RABBIT_MQ_PASSWORD - RabbitMQ user password

SA_PASSWORD - MSSQL Server "SA" user password

SendGrid__ApiKey - api key for sendgrid

bsa-2021-watchdog's People

Contributors

asignoleksandr avatar bohdanliuisk avatar egor-rusnak avatar katerynakub avatar oleksandrbovchaliuk avatar tatianahutii avatar vadymkolesnyk avatar vitaliy-shatskiy avatar vladyslav-maryniak avatar volodymyrbilyksw avatar yuriy-solodovnik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.