Week 12 Research
A few key project decisions
I've decided that it's gonna be impossible to create a project based around an infinitely extensible belief "skeleton" and I've decided to just model the religion aspect of the site around Christianity.
This means that each user will be able to say if they believe in a God or Gods or not. If they believe in a God they will have to select a figure to act as that God. That might be Jehova or Gary Lineker. It doesn't really matter.
There will be a Figures sub-section to the site that allows the user to browse through all of the religious figures added to the website so far. To add a Figure as God the user will have to click on that persons picture and then select "Add as God" from a context menu (that'll be created with the aid of ExtJS).
Now the interesting thing is that users will be able to add other users as their God on the site (providing they've given permission to be added as a God). This will hopefully make the site a bit more fun to use.
Ok, I'm trying to get an idea of what exactly is gonna appear on each users profile page.
- Gods
- Prophets
- Angels
- Devils
- Sins (this will be very interesting)
- 64 Core Beliefs (255 max beliefs per user)
Sins. Transgressions. Wrongdoings. Whatever!
Now this could be very interesting. As well as listing individual beliefs, users will be able to confess their sins and then find other people who have also committed that sin. This has the potential to be amazing. And amazingly controversial.
How will it work? Will I envisage a Sin tab along the top navigational menu. When you click on this you are taken to a directory of sins, with a small image of representing that particular vice, along with a description. On the left hand side there will be links that take you to "the most commonly commited sins" and other featured highlights.
Installing a Development Server
I think it's time to start thinking about developing the project. Obviously I have no database rationale at present but it'll be helpful to know where exactly to start from.
Yesterday, I downloaded and installed xampp which is a superb package of all of the popular PHP components. It contains practically everything I'll ever need to develop a PHP based site on. I remember having to download Apache, PHP and MySQL seperately and then editing numerous configuration files just to ensure they were talking to each other properly.

In order to access the xampp main menu on my computer, I simply have to type in 127.0.0.1. This is handy as it gives direct access to some of the features I'd tend to use most when developing, namely phpMyAdmin, phpInfo() and a security center where you can edit key server settings.
Just to keep the ball rolling I also setup a Site in Adobe Dreamweaver CS3 called 'Relphy.com Development Server'. It's root folder is a directory named relphy off of the xampp public_html root.

Now I wanted to setup Subversion on my home computer. This was more than a bit daunting as this was the first time I'd ever tried this. I Googled "subversion windows" and came across this amazing step by step guide for installing Subversion and its Windows client TortoiseSVN.
I managed to setup everything successfully and then BAM! a brick wall. Since I'll be developing Relphy in Dreamweaver I'll need a plug-in that communicates with Subversion (I could always check in my files manually each time, but this would be seriously time consuming).
I spent most of the night browsing around for a free SVN Dreamweaver plugin but unfortunately I couldn't find one. Boo! In fact the only appropriate plugin I could find was GraFX's SVN for Dreamweaver which costs $60.

That's far too much. What are the alternatives then? Well for $53 I could buy a licence for the professional version of PHP Designer 2007, which has to be one of the best PHP editors available on the market. It provides support for TortoiseSVN by default, along with a shitload of other features. I'm almost tempted to buy it now! I'll have a think about it over Christmas.
There are a few other alternatives. I could develop everything under linux and use the nvu editor. But that'd be senseless, since it's shit. Finally, I could always invest in a copy of Zend Studio. After all it only costs $254!?!? WTF! That's fucked up. It's a pity it's so expensive as I've been thinking for a long time about taking a PHP certification exam and it could have only helped. 
Balls to it all. I'll download the personal version of PHP Designer 2008 and then consider upgrading to the professional edition over Christmas.
Fixing the Fake Project Idea Error
This week I finally managed to update all of my Fake Project Idea's, up to and including Week 12. Hurray!
Now there's one remaining problem. The Fake Project Idea block only works inside the week controller as it relies upon the week number being passed inside the URL. If you visit the index page for example, nothing displays there at all.
Thankfully I've found a solution for this.
I've moved the code from the weeks controller into the global appController. I tcheck to see if the current controller is the week controller. If this is the case, then I fetch this weeks fake project. If it's a different controller I randomly select a week from 1 to 12. Here is the code.
if($controller == "weeks") {
$week = $this->params['pass'][0];
}
else {
$week = mt_rand(1, 12);
}
This week I found out about the mt_rand function which generates random numbers 4 times faster than rand. Pretty neat.
Netvibes Rocks
Netvibes.com is officially my new home page. I love websites that use AJAX to create draggable components. I'm definitely considering incorporating something similar into my project with the prototype library (perhaps with the Sin and Belief components).
Anyway here's a screenshot of the left hand pane of my Netvibes pane as it stands. I really love the Webnote feature!

Basecamp
Since time and project management is an imperative part of the major project proposal, I've signed up for a BaseCamp account.
My Relphy project is now up and running on BaseCamp. Woohoo!

I'll spend a bit of time now watching the demo video to try to understand how this works. I'm sure it will be invaluable over time. I'm disappointed that BaseCamp does not support Gantt charts. Bah humbug! I'll have to design my own.
Or download and alter a template. Yes!
Creating the Relphy Site Map
Now this was one hell of a chore. I spent at least three hours brainstorming the features that I'd like to implement in the system. By the end, it was totally chaotic. There's just so much to do!
I searched online for a sitemap generator and found Writemaps.com. It produces pretty cool looking maps, but it's extremely difficult trying to get it to look exactly how you want it to. It's best feature is undoubtedly it's XML Sitemap function which produces all the code for you.
Finally I managed to create a map detailing the most important features of the site. It was impossible to fit everything onto it. In these situations, I collapsed the node of links just to save some space.
The pages which have "green plus" signs on them have subsections that I had to minimise.










