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.
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.
The design of the application is trying to follow the principles provided by the Clean Architecture Solution Template.
- Blazor Server 6
- Blazor WebAssembly 6
- ASP.NET Core 6
- Entity Framework Core 6
- MediatR
- FluentValidation
- MudBlazor
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.
- Install the latest .NET 6 SDK
- Navigate to
src/Server
and rundotnet run
to launch the back end (ASP.NET Core Web API)
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.
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