PaperTrader/todo/v1.libtrader.md

166 lines
5.5 KiB
Markdown

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