## To do - server move network code to somewhere plausable. - create correct modules - 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 ## In progress - use env.sh or arguments ## 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