Skip to content

liannoi/wlodzimierz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WLODZIMIERZ

Codacy Badge Code Climate CodeFactor Codebeat BetterCode

The goal of the project is to provide a simple, convenient and cross-platform messenger for providing textual communication between users.

Contents

Principles, paradigms, practices

This project adheres to the best practices from the entire field of business application development.

Among them:

  • Object Oriented Programming (OOP)
  • Object Oriented Design (OOD - SOLID, GRASP)
  • GOF design patterns as well as architectural patterns (MVC, MVVM, CQRS)
  • Domain-Driven Design (DDD)
  • Reactive Programming Paradigm
  • Principle of "Clean Architecture"
  • Test Driven Development (TDD)

Architecture

The server-side RESTful Web API is written in .NET Core using MediatR library to implement CQRS design pattern.

The clients are:

  • Single-page application (SPA) in Angular
  • Native mobile application on Kotlin

Technologies

To describe the technologies of this project, it was decided to divide them into two conditional categories. The first category External clients refers to technologies that are related to the clients of the project, and the second category Server refers to technologies that are related to the server-side RESTful Web API.

External clients

SPA web app

  • Angular 11.1
  • Sass
  • Nx
  • Bootstrap 4.6 (ng-bootstrap)
  • RxJS 6.6
  • NgRx 10.1
  • Font Awesome
  • SweetAlert 2

Native mobile app

  • Kotlin 1.4
  • Android Jetpack (Hilt, Android Architecture Components)
  • SQLite
  • RxJava (RxKotlin, RxAndroid, RxBinding)

Server

  • .NET 5
  • Docker 19.03
  • Microsoft SQL Server 2019
  • Entity Framework Core 5
  • ASP.NET Core Identity 5
  • MediatR 9
  • SignalR
  • AutoMapper 10.1
  • FluentValidation 9.3
  • Swagger
  • LinqKit 1.1
  • Redis 6
  • Serilog
  • FluentAssertions, Moq, NUnit, Respawn

Getting Started

Messenger Wlodzimierz is hosted on two hosts:

If you want to deploy the system locally or get acquainted in more detail with the specification of the messenger - you should go to the Wiki section.

Hosting on Azure and Firebase was disabled after demonstration and defense of the thesis at Computer Academy STEP. Therefore, in order to deploy and see this work in person - you need to go to the Wiki section for instructions on local deployment.

License

This repository is licensed under Apache-2.0.

FOSSA Status

Copyright 2020-2021 Maksym Liannoi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.