|
The Softportal project
The Softportal project is a webportal software project. It started as a replacement for a personal website that was using a popular blogging tool. Because of the popularity of that blogging tool spammers and link referrers created scripts to automatically post junk and referrer urls on sites that make use of these blogging tools. These scripts were generating so much traffic on my site that all the bandwidth reserved was used after a few days and completely took away the fun of maintaining the site.
With simplicity in mind I wrote down some of the main requirements for the project and came to the following requirements for the Softportal project:
- Create a system of which the design is very easy to manage. (template based with multiple skins.)
- Not directly focussed on blogging.
- RSS feed support.
- A photo album / gallery.
- A media manager. (Functionality to upload images to the server that can be used in news items or added to an album.)
- A user manager.
- A link manager.
- A content manager.
Realization of the requirements
After going through the requirements and writing some low level documentation the development phase could be started. The project is written in asp.net 2.0 using c# as development language.
Template based design with multiple skins
Each page in the project derives from a custom basepage. This basepage will alter the html output that is generated and send to the client’s browser. It is possible to define a skin in the projects configuration file. This skin refers to the skin folder in the root of the project folder. Each skin contains the html parts from the pages and usercontrols, stylesheets and images that would affect the layout from the site. The basepage is using the html layout defined in the MainLayout.aspx for the standard pages of the webportal. There is also a layout defined for the administration module and a custom layout to be used in pages that must have a different layout than all the other pages such as the login page or error pages.
There are several pre defined blocks that can be used in the mainlayout template. Blocks such as the newsitems, site main menu, rss feed url link, login module, custom link menu, archive links, random images, last comments and content. The needed blocks can be defined in the mainlayout template by placing special tags in the html. An example for the login module would be: [ SOFTPORTAL_LOGINMODULE ]
The basepage will search for these special tags in the layout and replace them with the corresponding usercontrols. Most of these blocks also have their own layout defined in a html template located in the skin directory.
Not focused on blogging
As said before the project was started as a replacement for an existing blogging tool. But the project must be more than just a blog. Most sites that you will find on the internet that are using one of the popular blogging tools such as movabletype, pivot, etc etc are also using some sort of picture gallery or a guestbook or… Every piece of software that you would like to use has its own kind of behaviour and most of the time its own administrator login. I have done all that in the past and integrated these scripts and tools together so it would look perfect on the front side. But such a setup is really a pain to maintain with several updates of the different tools that you would like to use because the new features are looking very nice.
Also if you would like to have something custom such as these documentation pages or anything else that comes up in your mind, you have to start digging into html and php (and I say php because most opensource scripts available on the net are based on php). And I know there are several software projects available that would have almost all of what I want on my website but there is always that annoying “almost”. As I am a .net developer I wanted to get rid of the php stuff and have my site running on the dotnet framework. The dotnetnuke came really close to an alternative but I think it would be just too much and nothing more than an overkill of what I had in mind and as far as I know it is only possible to run dotnetnuke when you have a MS Sql database available. Softportal will work with each database that has a ADO.Net dataprovider available or is accessible through ODBC. The database used can be defined in the application configuration file.
Something I learned from my first IT job that I will always remember and keep in mind when starting a new project is “Within simplicity you will find the real master”.
News manager
The news manager is the alternative for posting blog entries. The news manager makes use of the great opensource FCKEditor.
RSS Feed support
By making use of the great opensource RSS.Net project it was very easy to add rss support to the site.
Photo album / gallery
The album / gallery module is very straightforward. It is possible to display three different sizes of an image. 1) thumbnail 2) medium 3) hires. The maximum sizes of these images are defined in the application configuration file.
It is possible to add a border with some vertical or horizontal text on it and a small logo positioned on a defined location on the image. The images are shown by use of a renderphoto page. This page opens the requested image, applies some manipulations onto it and will send the image as a jpg/jpeg to the client’s browser.
A gallery can have several albums. For each album you can browse and preview the thumbnails. The thumbnail overview is paged and the amount of thumbnails on each page is defined in the applications configuration file. When clicking on a thumbnail the visitor will be redirected to the medium size image and the visitors will have the opportunity read and add some comments related to the image. When the medium image is clicked the hires image will be displayed.
Media manager
The media manager is located in the admin section of the webportal. With the media manager it is possible to create / update / delete albums and upload images into an album.
Albums can be created visible and invisible to visitors of the website. Images used in news items or content pages will most likely be added into an album that is not visible to the visitors of your site.
Images can be uploaded 1 by 1 but it is also possible to do a batch import into an album by uploading all images with an ftp client onto the server and specifying the folder where the images are located. After confirmation of the upload or batch import each image will be processed and saved as thumbnail, medium and hires image.
User manager
The usermanager is part of the SecurityModule project. This project is used for the security part of the webportal. It has a usercontrol available that can be easily integrated into the site to maintain the rights and rules for users of the application.
Link manager
The link manager is located in the admin section of the webportal. The link manager is used to add links that can be used in the main site menu or the custom link menu.
Content manager
The content manager is located in the admin section of the webportal. The content manager makes use of the great opensource FCKEditor. Each content item saved can be accessed through the Content.aspx page with the id of the content item in the querystring. It is also possible to use content on other pages by using the special tag that will be replaced in the render function of the basepage. For example: [ SOFTPORTAL_CONTENTITEM=1 ] will replace the tag with the content item saved in the database with id 1.
|