PaperTrader/todo/v1.libtrader.md

5.5 KiB

To do

  • create correct modules
    • fix weird file naming
    • fix namespace naming
  • data implmentation stuff
    • implement buy & sell
    • impl on client
    • impl on server
    • assets data retrieval
    • ret data client
    • ret data on server
    • transaction data retrieval
    • split data into multiple writes

In progress

  • add testing suite
    • configure ci to run those tests
    • add tests for all server functions
    • add tests for all client functions

Done

  • [doc] Fix documentation to accommodate for new arguments & returns of functions
  • last clean up code v3
    • impl write trait for TlsConnection
    • remove message_builder() returning
    • use is_buy instead of action_type
    • remove repeated code
    • swap out string errors for integers
    • format using cargo fmt
    • fix assert_msg & sample code in README
    • investigate use bitflags for ReturnFlags
    • investigate multiple threads & IP based logging
    • switch to tokio
    • clear up warnings
    • make logging better with thread & ip names
    • convert logging to return io::Result
    • remove unneeded match on errors
    • actually make common common
    • check all .unwrap() references
    • implement server error returning handling
    • workout all TODO: stuff
    • runtime load the configurations.
    • add error logs
    • event logging module
    • standarize comments
    • add docs
  • The final stride:
    • main module
    • master server handling
    • client side connection handling
    • make everything modules
    • separate server build in actions
    • separate client build in actions
    • separate common build in actions
    • implement server side of commands
    • account registration
    • account login
    • account portfolio retrieval
    • account create portfolio
    • account create position
    • account transaction retrieval
    • account transaction creation
    • asset data retrieval
  • remove worker server
    • remove worker feature
    • remove worker server pool
    • remove worker functions
  • clean up code v2
    • change Message:message_type to Message::type
    • shorten hashing for account
    • clean up handle_data imports
    • differentiate between client and server functions using features
    • ~switch to argon2d hashing~
    • dont use error returns whenever possible
  • Add client account management system
    • add basic structure.
    • add password hashing + salting.
    • add email hashing + salting.
    • add username hashing + salting.
    • add account creation
    • add account authentication.
    • add session system
    • add account portfolio retrieval.
    • add account transaction retrieval.
    • add transaction to account
    • add transaction retrieval
  • Add networking infrastructure
    • add tls server.
    • add tls server ds
    • add tls server accepting connections
    • add documentations
    • add testing
    • add server config generation
    • add tls client
    • add tls client ds.
    • add tls client connecting to server
    • add documentations
    • add testing
    • add clientconfig generation
    • add worker/master server connection/ip pool
    • add certs managment
  • Add message parser for protocol
    • add function for building messages.
    • add bincode crate for encoding/decoding messages
  • Add documentation for the whole project
  • add test cases
  • clean up code
    • fix state field unknown
    • clean up connect str generation.
    • remove .to_string() repetition.
    • make returning errors consistent.
    • make SQL files consistent.
    • make it so that buy and sell are convertible to booleans
    • make file names consistent
    • write a log path generator
    • make a better password system
    • make line length consistent
  • Add logging system
    • add display operators for ds
  • Design protocol.
  • Add data structures.
    • Accounts.
    • Portfolio.
    • Transaction History
    • AssetInfo
    • Stocks
    • StockValue
    • Session structure
    • WorkerServer Structure
    • MasterState Structure
    • WorkerState Structure
    • Message Structure
    • Import/export of data to database
    • Docker Deployment of application
    • Database Backup System
    • Implement database types
    • Saving/Loading stock values
    • Saving/Loading profiles/portfolios
    • Saving/Loading company values
  • configure drone ci
  • use env.sh or arguments
  • server move network code to somewhere plausable.
    • move assert_msg to message namespace
  • investigate server logging doesn't include location of log method caller
  • data implmentation stuff
    • implement buy & sell
    • impl on client
    • impl on server
    • assets data retrieval
    • ret data client
    • ret data on server
    • transaction data retrieval
    • split data into multiple writes
  • add testing suite
    • configure ci to run those tests
    • add tests for all server functions
    • add tests for all client functions
  • create correct modules
    • fix weird file naming
    • fix namespace naming
    • remove unneeded MessageType
    • make server return coded