Skip to content

The Web API should fetch the prices from multiple free cryptocurrencies API sources, aggregate them using some formula, then return it to the client. Furthermore, it should persist the aggregate price for that

Notifications You must be signed in to change notification settings

pnedov/CryptoFinAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrpyptoFin

This repository contains project that gets, agrregates and stores cryptocurrencies prices for specific time point or time range using external public APIs.

Tehnologies

  • .NET Core 8.0 / C#
  • SQLite
  • Entity Framework Core 8.0

Swagger UI

For API UI has embedded Swagger UI

image image

Structure and design

  • microservice, SOA
  • layered architecture, repository pattern, dependency injection
    • code, data, UI are split
    • code consists of: controllers, models, core service logic and optional 3rd party libs
    • Entity Framework supports using SQLite, easy to create new db instance and customize the CRUD
    • data stored by default in SQLite attached database using Microsoft.Data.Sqlite.Core
  • RESTful API
  • UI based on Swagger UI with minimal custom and support
  • use of well-known 3rd party libraries: Newtonsoft.Json
  • code architecture allows easy extend options:
    • add new external API providers
    • new classes for calculate extracted prices
    • new data providers
  • Unit tests project contains tests covering base part of code

This technology and architecture were chosen so that in the future it would be possible to easily extend the functionality and integrate this project in a more complex system of microservices.

About

The Web API should fetch the prices from multiple free cryptocurrencies API sources, aggregate them using some formula, then return it to the client. Furthermore, it should persist the aggregate price for that

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages