August

August 6 - August 10
This week I continued working on the drag and drop side of wiEGO (the new project name), as well as finish up my ethics final project plan, and timeline of deadlines. After my drag and drop was finished, I worked on adding in new wiki sections, links and pages, as well as deleting wiki sections that currently exist (my target audience should not be able to delete pages so I did not implement page deletion capabilities). The external Mediawiki modifications took me most of the week because I had to figure out how things were normally created or updated, and then write some very generic functions that would restrict most user behavior, keep our security in check as well as fulfill the users needs. In the end I decided that the user will create a whole graph or delete a whole bunch of nodes, and then the program will perform all of their actions at once, instead of notifying the user after each one has been completed. I will have to see if this approach is worth while.



August 13 - August 17
My primary focus this week was to assist my interns in finishing up their projects (course planner applet and user behavior applet) so that they would be ready to demonstrate at their celebrations of learning. This involved assisting with paper creation and poster creation, as well as performing last minute changes each of their projects. After I finished this (Thursday), I was able to finally start working on the external authentication with Mediawiki and Moodle. After much research, I have realized that the most obvious solution to the Mediawiki/Moodle issue would be to use the same mySQL database table to store the user information so both apps can access and modify them without having to make extra SQL queries to update or replace values in both databases. I have decide that I will try to copy the Mediawiki database into the Moodle one and then merge the user tables, this way Mediawiki will be able to reference other tables and thus decrease the number of duplicate calls (just like with the user table). I can foresee only one major issue with this approach, and that is the fact that both user passwords (Mediawiki and Moodle) are hashed slightly differently, so I will have to determine which password encryption is the best, and use that one in the table merging of the passwords (the user names, emails and ids can be easily changed, but the passwords are stored as binary values that cannot be easily changed. After this is done, I think I am going to try and create an external authentication module that will allow a user to login to Moodle and then Moodle will subsequently log them into Mediawiki. As of right now I think I will use the php get variables and see what happens. After I have completed this authentication, I will have to come up with a markup to use on wiki pages that are apart of the same graph, or if a page corresponds to a whole graph and then output the correct data based on this and notify the applet when a change has been made (threads?).



August 20 - August 24
This week I was on vacation with my family, so i spent a large portion of the week reviewing papers and trying to determine the best way to do my external authentication. I realized that external authentication module was not as hard as I previously thought so I had it completed rather quickly. To solve the problem, I rewrote a section of the wiki that handles the user login. As soon as the user clicks on a page link in Moodle, it will go to the hidden login (the user never sees this) which logs them in using the username they had in Moodle, and are redirected to the page they clicked on. In doing this the user will only see the source page and the page they clicked on, it will cut down on the confusion of the user. While it took awhile to develop the idea, it did not take long to implement and works better than I expected.



August 27 - August 31
This week I got a lot accomplished. I implemented a spellchecker for the wiki, got the Moodle recent changes module working (shows the user the changes that have occurred on the wiki since they have last logged into the Moodle), and added in a bunch of group assignment and page assignment extensions. The extensions allow a teacher to restrict what pages a user can view, edit and move and also allow the users to assign their pages to different graphs so that EGO can render them. Until some NLP is implemented, the user will have to manually assign the pages to graphs. Lastly I am building a project creator section of the wiki that will allow a teacher to create specific project areas for a subset of groups. For instance, if I am teaching social studies 7, and I have two different group projects, one on brazil and another later on in the term on history, I would want to create different groups and group areas based on the project requirements (ie. timelines, calendars, report pages, revisions may or my not be needed for each project). wiEGO will allow for this flexibility. Lastly, I will be completing my final report for CDMP and submitting it, along with this website on Sunday.