More on the Intranet

I have had several requests to provide more information about the Intranet – and it is something I LOVE talking about. Which brings me to some good and — not bad — but disappointing news. The good news is that I was asked to write an article about the project – the disappointing news – for you all – is that I probably can’t write much about the project here until I’m done with the article.

I can answer some questions though.

Mahalie asked about timeframe and the people involved. I was not doing this project solo – thank goodness!! We started in August and finished in mid-December. By finished I mean finished a functioning product. We are still tweaking and adding features on a daily basis. On January 2 we went to work while everyone was out and made the entire thing live for the staff. So since January 3rd our staff has been using it – not long yet.

Mahalie also asked who the “we” were. Our server is maintained by our IT staff – but they didn’t have to do much because they already had the server set up for the Intranet – mostly they restored backups for us every time we messed things up so badly there was no turning back. My job title is Web Manager and I have one helper (a Web Assistant) who works about 20-25 hours a week with me. Between the two of us we wrote every piece of code (with the exception of the calendar) with the help of online tutorials, my favorite books (Web Database Applications with PHP & MySQL, 2nd Edition, PHP Cookbook and MySQL Cookbook), and my favorite support forums – the Devshed Forums.

That also answers David’s question about what we used – everything was custom built. David also wanted some technical details – I’m pretty sure I’ll be able to share some things like that.

I can tell you that the hardest thing we had to figure out was how to handle the wiki portion of the site. I had no idea how to keep track of all of the changes on each page – at first I thought I’d need several tables in my database – turns out I only needed one.

CREATE TABLE `pgs_content` (
`pageID` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`body` longtext NOT NULL,
`user_id` int(11) NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`version` decimal(10,2) NOT NULL default '0.00',
PRIMARY KEY (`pageID`,`version`)

So each time a page is edited the pageID remains the same but the version is incremented by .01. That way I can make sure only the most recent version shows on the screen by default, but the other versions can be seen by clicking on version numbers on the history page. This is different from other wikis – most of the ones I’ve seen use the title as the primary key – we couldn’t have that on our Intranet because there can be several pages titled something like “General Information” or “Policies” – so I needed to use a number (the pageID).

Anyway, I’m sorry you all have to wait to hear the details – but I’ll keep giving you bits as I can. If you have a specific question feel free to ask me via email nengard (at) gmail (dot) com … if not watch here for some details and when I know more about the article I’ll share it with you all.

Leave a Reply

Your email address will not be published. Required fields are marked *