Hi Dimension10. I have jury duty today and tommorrow (hopefully, this will be it), so I am a little distracted, but I have an understanding of the Q2A code. You can gain a complete understanding by just looking at qa-index.php and qa-page.php, which are the main php files, and the included "require" files which include the libraries which are being used.
The attached javascript is very insignificant, it doesn't need to be modified. The database access, on the other hand, will probably need to be modified for the reviews, and this is too much to ask of polarkernel, who is doing a sensible conservative job in modifying the code, for good reasons. But once you learn the basic php files, modifications are simple. I will try to implement the first modifications--- making a deep heirarchical tag system, and changing the top-page layout (so it isn't overlayed by a javascript addendum). That really isn't too hard, I will try to do it this week.
The hard work will be to make a database reflecting all the papers, and all their mutual references to each other. This can be used to make a page-rank type system that can offer a bare-bones review for older papers that does not require manual input. The basic idea is to associate with each paper a collection of "hard references", which are earlier works which automatically gain reputation from each upvote, to associate a "default upvote" which is by default granted to each author who uses a reference positively, and then to back-propagate the reputation of the upvotes to the references.
In this way, I believe that you can set up an already-functional evaluation system for present papers. The implementation of this feature, unlike the others, is hairy, it requires a new database structure, and a significant body of code, comparable to the current Q2A core code (but without any change to the user-interface, it is just core code). The size of the Q2A code is extremely small, you can learn it in a few days if you know php, and I am impressed with the programming job the Q2A person did.
Anyway, if you are interested in getting into the guts, I recommend to pull the current version, make an apache installation locally on your machine which displays it, and manually read through the php codes for the basic core of Q2A. If you feel it is readable, maybe you can give pointers on how to implement reviews, but I might be able to do it.
I am not such a super programmer, but I do understand the code now, and I will try to reassure you that I am not just making this up by implementing the easy features (heirarchical tags, changing the top of the page so that the options are controlled by an external file). These can be suggested as straightforward additions to Q2A. The deep stuff for reviews can be a separate body of code to deal only with reviews, using the user-land routines of Q2A, but being essentially independent, living on top of Q2A so to speak. It can use a separate database for the article submissions and reviews than the Q2A database, so that there is no cross-talk between the two things, except perhaps some reputation imported.
Mar 27, 2014
by
Ron Maimon