Thingdex
An online, user-maintained entity index and comparison engine
Development Period: May 2008 to August 2008.
Coded With: PHP, SQL, HTML, RSS, JSON, CSS and JavaScript.
Tools Used: CakePHP, MySQL, jQuery, Subversion, Adobe Photoshop, Firebug and Eclipse.
Tagged As: Ongoing, Postgraduate, Web and Personal.
About
The Digital Marketplace module completed during my Master's course involved the development of a new business concept. This resulted in a business plan for Thingdex, an online, user-maintained entity index and comparison engine.
For my final project, I developed an alpha version of the service. In the three months available, a working version of the Thingdex website was developed and launched. A formal report was also written, exploring current trends in Web development and how the emergence of community, consensus and convention in this area makes Thingdex's development viable. In the light of these broad themes, issues specific to the implementation of the Thingdex alpha were examined.
I was given 78% for the project. Combined with my previous grades, this allowed me to graduate from the DDM course with a distinction.
Thingdex is still at an early stage of development, and many features are missing or incomplete. I'll be working hard to develop the project further, and a beta release will be ready soon.
Technical Details
User Accounts
- Email-based account verification. Confirmation links are sent out by email to verify new accounts.
- Friends. Friend requests can be sent to other Thingdex users.
- Messaging. Messages can be sent between users.
- Request management. Incoming requests can be managed at http://thingdex.org/account/requests.
- Avatars. Users can add images to their profiles.
- Password management. For added security, account passwords can be changed.
- Password resetting. From http://thingdex.org/users/reset_password, username reminders and password reset links can be sent to the user by email.
- Account deletion. Accounts can be permanently removed.
- Privacy policy. Full details are given on how personal information is used.
- Profile pages. Users can maintain public-facing pages about themselves.
- Searching. Users can be found through a variety of search criteria.
Things
- Tags. Users can apply and browse tags.
- Types. Thing entries can be described by a number of types, including person, place and product.
- Images. Thing images can be uploaded. Thumbnails are generated in a range of sizes.
- Voting. Most user-generated content can be voted on by Thingdex users. This acts as the editorial process for the site, promoting the most useful content.
- Comments. Users can comment on various content items.
- Deals. As a hint of what functionality might be relevant to thing entries in the future, support for deals has been added. Users can add the best prices for products here.
- Links. Similarly, related links can be added to any thing entry.
- Comparisons. Users can compare multiple thing entries.
- Reasons. For any comparison, multiple reasons can be added. The process of doing this is simplified with various jQuery-based functionality.
- Disambiguation. Multiple thing entries with the same name are supported.
Other
- Clouds. Various information sets are presented in a cloud format, with the most popular entries appearing more prominently.
- Search with autocomplete. Thing searches can be made from any page, and autocomplete provides shortcuts to the desired page.
- jQuery-based drop-down menu. Navigation is simplified with a JavaScript-based menu.
- Breadcrumbs. Each page's location in the site structure is shown with a link trail.
- RSS feeds. Thing entries and blog content can be accessed through an RSS reader.
- Page sharing links. Add to Any is used to provide links to popular social bookmarking websites.
- Bug reporting tool. Website errors can easily be flagged.
- Development blog. Details of development issues are discussed in a blog. The blog has several of its own features, including tags and CAPTCHA-secured public commenting.
- Fluid, three-column layout. As a content-heavy website, a layout has been chosen that maximises the information presented. The avoidance of a fixed-width layout is particularly beneficial for dual monitor and other high resolution setups.
- Support for all modern browsers. The site works with Firefox 1+, Internet Explorer 6+ and many others.
- Valid HTML 4.01 strict. Most pages validate against W3C specifications.
Partially Implemented
The following features are evident in the source code, but were not deemed complete enough to present on the site itself. They will be implemented properly at the beta stage.
- Constituent management. It will be possible to designate things as components of others. More detail is provided in the business plan.
- Sponsored listings. This system will monetise the service.
- Entry merging. In contrast to disambiguation, this will allow entries to be accessible under different names. For example, MS PowerPoint and Microsoft PowerPoint could point to the same entry.
