I propose the following structure for this repo:
It must be divided into 2 directories:
1. CommonJS
2. AMD
The former would contain modules following CJS pattern (server-side JS Code, i.e., Node.js) and the latter, AMD (client-side JS Code).
for example: if A Star Search Code needs argmax () functionality from utils.js, the CJS version of search.js (the file which contains the A-Star Search Code) would use the statement:
require ("./utils.js");
and the CJS utils.js must contain the following line of code:
function argmax (...) {...}
exports.argmax = argmax;
This keeps the repo neatly divided and, I believe, will eliminate confusion. However, it might lead to 2 copies of the same code being kept.
For example: The argmax () function implementation remains the same, regardless of the modular pattern. However, since the method of importing the module is different for the 2 directories, we may have to maintain 2 separate copies of this function - 1 inside CJS folder and 1 inside AMD folder.
I could be wrong, I'm still learning. So I'd be happy if more people contribute on deciding the Directory Structure, I believe it is crucial in order to make it easier for the user.
Also for Visualization, I believe D3 provides an excellent set of tools.