It presents a simple interface for an ORM (Object Relational Mapping) implemented in C++.
The goals of this design are:
- Present a clean and straightforward interface.
- Be used on the server side (concurrent).
The packages used are:
- CMake
- C++ 17
- Google Test
- Google Mock
Each transaction contains a monetary value and a country of origin.
It's required to consult the validity of each transaction using an API Server from the bank of origin.
Each bank API has a latency of processing for each transaction.
It's required to obtain a group of transactions with the highest amount of money in total, given a specific time frame.
The solution uses dynamic programming (knapsack algorithm) in order to solve the problem (implemented in Golang).
It's a server side implementation of a typeahead functionality using golang language programming.
The typeahead functionality is understood as a suggestion list of values ordered by specific criteria (autocomplete list).
The solution uses a radix tree, a queue, and a comparison logic of the "criteria" structure. The radix tree is selected due to the prefix string (not exact match) is required. The queue and the comparison logic are used to order by some criteria the returned list.
It uses Rest API in order to communicate with the server.
The packages used are:
- github.com/armon/go-radix
- github.com/gorilla/mux