A comprehensive content management system - ASP.NET, C#.
Several basic portal modules for common types of content
A "pluggable" framework that is simple to extend with custom portal modules
Online administration of portal layout, content and security
Roles-based security for viewing content, editing content, and administering the portal
All configuration for the portal is stored within a SQL Server database -- enabling web administrators to easily deploy an instance of the portal accross multiple front-end web servers (each pulling the appropriate configuration data out of the same portal configuration database).
The Portal Framework code listed below uses this configuration data to control the portal's content layout (ie: what portal tabs are displayed -- and what portal modules live on each tab) and security settings (ie: user roles, access permissions, etc).
Configuration is loaded on each request from within the Portal Application's Global.asax file using the Configuration business component. It is then used from within either the Portal's DesktopDefault.aspx page (if the accessing browser is an HTML desktop device -- IE, Netscape, Opera, etc).
TAB - Content in the portal is grouped by Tabs. You can create tabs that are visible only to certain users. For example, you might create a private tab that only users in the "Managers" role can view. Managing Portal Layout use to create a tab, and Managing User Security use to control access to a tab.
The Dawn Portal provides an online Admin tool that permits users in the "Admins" role to manage the content, layout and security of the portal.
Managing the Portal - You can have more than one defined portal one this application and managed by this tool.
Managing Portal Layout
Working with Tabs - you can easy manipulate with tabs add new tab, modify or delete exiting tab and reorder tabs.
Working With Modules on a Tab - lets you manipulate the modules for the selected tab. Use this page to set the tab name and which roles may view the tab, add new module , modify or delete exiting module and reorder modules on the tab.
Managing User Security
Authentication - validates a user's crenditials. The Dawn Portal supports two forms of authentication: Forms-Based/Cookie authentication collects a user name and password in a simple input form, then validates them against the Users table in the database. This type of authentication is typically used for Internet and extranet portals. With Windows/NTLM authentication, either the Windows SAM or Active Directory is used to store and validate all username/password credentials. This type of authentication is typically used for intranet-based portals.
Authorization - is used to control access to the modules and tabs in the portal, including the Admin tab. The Dawn Portal uses roles-based authorization. The portal administrator uses these steps to set up roles-based authorization: create a role, add users to the role, set view permission for tabs, set edit permission for modules.
Portal modules let you organize, display and maintain data. The Dawn Portal provides several modules you can use. Each portal module UI element is implemented as an ASP.NET User Control that displays the module's data/content within a portal page. Optionally, each portal module may also include an Edit Page to let users interactively update the data, business components to interface to the data source, and stored procedures to fetch/update the data.
Portal Modules are modular pieces of code and UI that each present some functionality to the user, like a threaded discussion list, or render data, graphics and text, like a "sales by region" report. Typically, several portal modules are grouped on a portal tab. When a user browses a tab in the portal, the portal framework reads a description of the tab from it's configuration file, and automatically assembles a page from the portal modules associated with the tab. Framework was made to easily extending with new modules. Already done modules are:
Announcements - This module renders a list of announcements. Each announcement includes title, text and a "read more" link, and can be set to automatically expire after a particular date. Announcements includes an edit page, which allows authorized users to edit the data stored in the SQL database.
Html/Text
This module renders a snippet of HTML or text. The Html/Text module includes an edit page, which allows authorized users to the HTML or text snippets directly. The snippets are stored in the SQL database.
Documents
This module renders a list of documents, including links to browse or download the document. Documents includes an edit page, which allows authorized users to edit the information about the Documents (for example, a friendly title) stored in the SQL database. The document itself may be linked to via URL or uploaded and stored in the SQL database.
Discussion
This module renders a group of message threads on a specific topic. Discussion includes a Read/Reply Message page, which allows authorized users to reply to exising messages or add a new message thread. The data for Discussion is stored in the SQL database.
Contacts
This module renders contact information for a group of people, for example a project team. The Mobile version of this module also provides a Call link to phone a contact when the module is browsed from a wireless telephone. Contacts includes an edit page, which allows authorized users to edit the Contacts data stored in the SQL database.
Environment: ASP.NET, MSSQL, Visual Studio .NET, Windows