Moon Stats: The exciting Crypto PNL Tracker App

#Linode #LinodeHackathon

What is PNL?

PNL means Profit and Loss. Right now, the project only tracks Spot Trading Profit and Loss

History

After a few months of dabbling with crypto trading on Binance, I had a decent amount of trading history on Spot Orders. Spot Order just means normal trading without leverage (loans) and you wouldn't get liquidated (Binance will take your money) if the value of the crypto token goes down.

I had so much fun that I needed to see on a chart and some kind of tabular data how I was doing with all these trading. I went on Coin Gecko portfolio, and I thought I can do the same thing and much better!

Roadmap

Here's a roadmap of the project:

  • v1 ✅
    • Spot Order PNL Tracker
    • Adding Buy/Sell Orders
    • User Auth
  • v2
    • Getting data from Binance API
    • Ability to import from Binance CSV
    • Adding multiple accounts (e.g, Binance, Kucoin, etc)
  • v3
    • Futures / Margin Trading PNL Tracker
  • v4
    • Social Media PNL Sharing

Tech Stack

For Frontend, I chose Remix, because I love React! And I've been meaning to learn Remix for a long time. It was perfect and although I faced a lot of obstacles, I can say it has many pros than cons.

For Backend, I chose NestJS! I have used it for a small project before, and I'm really loving it so far. I don't think it's easy for beginners but once you get the hang of it, the opinionated framework will really take your project to new heights.

And of course for deployment, I use Linode for the Hackathon. I'm not a devops person, so I spent the whole weekend configuring. I deployed my NestJS there and my Mongo database. The Marketplace app for NodeJS really helped alot.

Here's some screenshot of my Linode and MongoDB cluster:

Screen Shot 2022-06-27 at 10.10.29 AM.png

Screen Shot 2022-06-27 at 10.10.17 AM.png

I used Vercel to deploy my Remix app, because I don't think I have enough time to configure and deploy it to Linode :)

Here's a screenshot of the web app:

Screen Shot 2022-06-27 at 10.12.53 AM.png

Demo Usage

You can test a demo by logging in with these credentials:

    email: faith.morante+test1@gmail.com
    password: test123
  1. Sign in or Sign up
  2. Login to see the dashboard
  3. Click the Add Order button, make sure all the fields are filled in.
  4. Once it's done, the dashboard should automatically reload without refreshing the page

Web link: moonstats-remix.vercel.app

Frontend Github: github.com/idiglove/moonstats-remix

Backend Github: github.com/idiglove/moonstats-nest

NOTES: If you want me to post a tutorial for how I did this project on Remix, Nest and Linode, pls comment down below :)