Skip to content

astanchev/Personal-Stock-Trader

Repository files navigation

Personal Stock Trader

Demo project for trading stocks on NYSE. For now it is implemented for trading only IBM stock, and provided data is 1 min. series.

Roles

  • Visitor
  • Administrator
  • Account manager
  • User with not confirmed account
  • User with confirmed account

Getting Started

Site guest (visitor)

  • can only visit Info pages (Home, About Us, Privacy, Our Services, Contact Us, Register, Login) and can send e-mail from form to site owner.

Every user has to register, except regular data and starting balance for his account (more then 1000USD). After his account is confirmed by account manager, he can use the full functionality of the trade platform. Every user pays trade fee for every trade and monthly commision for account maintenance. Every registered user,administrator and account manager has own profile page.

Administrator - created from site owner

  • Manage account managers.
  • Create, update and delete account manager.
  • Manage sent to site e-mails from visitors.
  • Manage Hangfire dashboard.

Account manager - created from administrator

  • Manage new accounts.
  • Confirm user accounts. After confirmation user receives automatically generated email.
  • Manage confirmed clients
    • update their fees and balance
    • send them e-mails
    • activate, deactivate their accounts
    • can delete user.
  • Sees clients statistics (graphics)
    • Paid total trade fees last 7 days
    • Paid total monthly commissions last 6 months
    • New clients last 90 days
    • Money from commissions and fees last 90 days

User with not confirmed account - register

  • Can only visit his profile page.

User with confirmed account - register

  • Can see current IBM price (1 min series) -live updated data
  • Can see live update 1 min chart for IBM stock
  • Can buy or sell IBM stocks (depending of his account balance)
  • Can see updated position profit/loss depending of market direction
  • Can see history of his positions (can choose interval for them)
  • Can generate report with closed positions
  • Can see statistics of his paid trade and monthly fees (can choose interval for them) (graphics)
  • Can see his profit/loss from closed positions (can choose interval for them) (graphics)

Background processes

Hangfire has two registered jobs

  • Every 1 min to collect data from external api - Alpha Vantage API and populate the database
  • Every month to collect monthly commissions from every active account

SignalR

  • Checks if there is new data collected from Hangfire in the Database and if so - updates stock price and time in user's trading platform

Unit tests Code coverage

Code coverage

Template authors

Template Layouts

Data providers

Used Frameworks

Used techniques

  • MVC
  • Repository pattern
  • Services
  • Web Api controllers + AJAX
  • In-Memmory Cache
  • Modul form /for sending e-mails from account manager to client/
  • TempData message for sent email from site visitor

Pictures

  • Unregistered user

Home Unregistered user

OurServices Unregistered user

Footer Contact Us Unregistered user

  • Registration form / login form

Register Registration form

Login login form

  • Administrator

Administrator Home Administrator

Manage Emails Administrator

  • Customer manager

Manager Clients Customer manager

Manage Client Customer manager

  • Registered user with unapproved account

New Account Registered user with unapproved account

  • Registered user with approved account

UserHome User Home

User Statistic User Statistic

Trade History Trade History

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Author

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published