chr-ber / TradingJournal

Single page app to journal your crypto derivative trades.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TradingJournal

About

TradingJournal is a Single Page Application fully written in C#.

The application was developed as part of the final assignment to complete the 6-month educational program Training as a certified Software Developer C# at WIFI Vienna.

Project Goal

The goal of the application is to make journaling crypto derivative trades as simple and responsive as possible.

This is achieved by allowing the users to add read only API keys from the trading platform ByBit.com to the application. Once added a background service will create WebSocket connections to the trading platform. The trades are imported with only a few milliseconds delay and allow immediate journaling and access to detailed statistics without any manual synchronization or delay.

Architecture

The design of the application is trying to follow the principles provided by the Clean Architecture Solution Template.

Technologies

Live Demo

Link: https://tradingjournal.chrisberger.dev

The live demo is using the ByBit TestNet. Feel free to add api credentials on the accounts page to test live trade import.

Please note that all data of the demo site gets reset daily at 24:00 UTC.

Screenshots

Dashboard

Trade Details

Accounts

Getting Started

  1. Install the latest .NET 6 SDK
  2. Navigate to src/Server and run dotnet run to launch the back end (ASP.NET Core Web API)

Database Configuration

The application is configured to use an in-memory database by default. This ensures that all users will be able to run the solution without needing to set up additional infrastructure (e.g. SQL Server).

If you would like to use SQL Server, you will need to update src/Server/appsettings.json as follows:

  "UseInMemoryDatabase": false,

Verify that the DefaultConnection connection string within appsettings.json points to a valid SQL Server instance.

When you run the application the database will be automatically created (if necessary) and the latest migrations will be applied.

Database Migrations

To use dotnet-ef for your migrations please add the following flags to your command (values assume you are executing from repository root)

  • --project src/Infrastructure
  • --startup-project src/Server
  • --output-dir Persistence/Migrations

To add a new migration:

dotnet ef migrations add "ExampleMigration" --project src\Infrastructure --startup-project src\Server --output-dir Persistence\Migrations

To update the database:

dotnet ef database update --project src\Infrastructure --startup-project src\Server

About

Single page app to journal your crypto derivative trades.

License:MIT License


Languages

Language:C# 70.0%Language:HTML 28.5%Language:CSS 1.5%