Project Forum
Title: FORUM
Author: Taulant Bajraktari
Version: 1.0
Date: 5 March 2009
Contents
Contents
Introduction
Purpose
Technologies
Walkthrough
Registration
Login
Search
Admin
Thread
Post
Future Development
Introduction
Purpose
The purpose of this project was mainly to use open source framework, tools and utilities to create a forum where ideas can be shared.
The project is developed from scratch including design, development, testing, production, hosting etc
Technologies
There are various technologies used in this project, spring being the container everything is configured around spring.
- SpringFramework
Very powerful framework and supports a lot of other frameworks
- MVC – Controller layouts
Excellent framework for dealing with forms, and great for inversion of control
- AOP, TX – for transaction management
- Interceptors
- For general intercepting tasks
- Listeners
- listening behaviours
- Hibernate
Great ORM tool for managing data retrieval and storage
- Hibernate Search Plugin’s with lucene
- Tiles2
Templating jsp
- Lucene
Search utility integrates with hibernate search
- Axis2
Web services using axis2, SOAP service calls
- Rampart
Security for web service layer, using policy.xml for secure communication, using 3des authentication key
- DOJO
Powerful javascript object oriented utility, providing rich interfaces
- DWR
Ajax calls from client side
- Maven
Long gone the days for Ant (Which I still use on some projects) powerful build utility
- Jasper Reports
Report designing and generation
- Digester
Xml file manipulation, using rule sets etc
- Cewolf
Taglib for jfreechart for charting
- TinyMce
Rich text editor
- JSTL Taglib
Jstl wrapper – for functionality enhancement
- Velocity
Templating – data
- TestNg
Testing
- DbUnit, Junit
Db insertion and testing units
- Jetty
Application server used for testing
- Tomcat
Application server used for testing
- Trac
Project management software
- CruiseControl
Ci – countinues integration testing
- POI
Excel, word utility
- IText
Pdf utility
- DisplayTag
Table taglib utility
- Oracle
Database data storage - powerful
- Glassfish
Production application server
Walkthrough
The following walkthrough is going to focus, only some of the areas where a lot of functionality is used and more information will be provided from time to time.
A simple style design using tabs and two column template
- Left menu - Last 10 threads and posts
- Achieve of the threads
- Tag claud, showing top 20 search keywords, and focusing on the most searched term
Registration
When user would like to register very simple clicking on the registration link provided on the top menu, a
registration form will appear.
Login
When user logins, he can view and post a thread.
The list of the threads displayed below and the logged in user and some of the details displayed on right hand corner

Search
Once they logged in, users can search the threads. The search facility uses lucene and hibernate search to return the result.
Using search facility I am searching for development and below is the result returned.
Lucene search result, including score, and the object details.

Admin
When user logins is detected if its admin user, if so redirected, to admin section
When redirected to admin section, he can view all users, see their activities such as analysis via charts (generated using cewolf) a flat table with functionalities (generated using display tag).
At moment a normal user can go to admin section.
In admin section user can use web services to display threads.


Thread
At moment not full lock down is applied to secure threads. Users can create threads, delete and some of the threads are locked that can not be viewed.
At the bottom of the threads, the ability to add a new thread is provided

Post
Posts, user can create a post, reply to a one, or delete depending on the permissions.
Add the end of posts, ability to add a new post provided. This is using TinyMCE editor to provide a rich interface to entering information in style.
Future Development
- Easy Navigation
- Code entry syntax highlighter
- More themes
- Admin lockdown
- More context and sensible links
- More enhanced unit tests

