Skip to content

Project for a personal web page. It consists of SPA and the backend.

License

Notifications You must be signed in to change notification settings

TomaszKandula/TokanPages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TokanPages

Microsoft technologies and more

TokanPages is a project repository that holds my web page to share my programming interests (among others), primarily Microsoft technologies.

The backend architecture of the solution follows the modular-monolith concept. Everything is split into projects and services with only one underlying SQL database. The frontend solution is made with React w/Redux. Everything is dockerized and hosted on the VPS.

Despite mainly focusing on software development and Microsoft technologies, this web page aims to be more than just a simple personal home site.

CI/CD Pipelines

Build and run tests (dev)

Project metrics

Frontend

lines code smells bugs

rating security rating reliability rating

debt duplicate coverage

Backend

lines code smells bugs

rating security rating reliability rating

debt duplicate coverage

Tech-Stack

Frontend

lines

  1. React w/Redux (TypeScript).
  2. Material-UI.
  3. JEST.
  4. Axios.
  5. AOS.
  6. Validate.js.
  7. Syntax Highlighter.
  8. Emoji Render.
  9. HTML Parser.
  10. Husky.
  11. Semantic-Release.
  12. NGINX.

The client app uses React Hooks. Tests are provided using JEST, but there has yet to be full coverage.

The project is dockerized and deployed via GitHub Actions to VPS. The web server of choice is NGINX.

Backend

lines

  1. WebApi (NET 6, C#).
  2. MS Windows Server 2022 w/SQL Database (deployed to the separate VPS).
  3. Redis Cache (deployed to the separate VPS).
  4. Entity Framework Core.
  5. Azure Blob Storage.
  6. Azure Key Vault.
  7. Azure Service Bus.
  8. MediatR library.
  9. CQRS pattern.
  10. FluentValidation.
  11. SeriLog.
  12. Swagger-UI.
  13. Polly.
  14. SignalR.
  15. PuppeteerSharp (Headless Chrome).
  16. PayU API (to be changed to Revolut API).

Tests are provided using XUnit and FluentAssertions.

The project is dockerized and deployed to the VPS.

Continuous Integration / Continuous Delivery

CI/CD is done via GitHub actions. There are three scripts:

  1. dev_build.yml - it builds .NET Core application and React application, then runs all the available tests; finally, it scans the code with SonarQube.
  2. master_build.yml - it scans the repository, generate release number and pushes the code to the server for installation.

End Note

This project is under active development, the status can be monitored here: Board.