We are in a need of a web-based knowledge base application.
The application will manage various types of articles.
1. Ready-made software is good enough if it fulfills all the requirements listed below, however,
2. Supplied deliverable MUST include unlimited, royalty-free distribution and modification rights.
1. Developed using ASP.NET 1.1
3. Full source code must be provided
4. Source code must be fully documented
5. Installation package
6. The system must be able to talk both to MDB (Access) and MS SQL Server databases.
7. All .NET classes will be contained under the root namespace "[url removed, login to view]"
8. Application-specific classes will be located under the root namespace "[url removed, login to view]"
9. General (infrastructure) classes will be located under the root namespace will be located under namespace "[url removed, login to view]"
10. All web-service classes will be located under the root namespace "[url removed, login to view]"
11. The deliverable will include an SQL script to create the appropriate table schema in MSSQL server, and an empty MDB (Access) file with the required tables inside.
1. Article templates - user must be able to define templates for various article types. The templates will include the article sections with their corresponding titles. When entering data for a new article, the user will enter text for each section separately in an HTML-enabled text editor.
2. Each article section must be able to have images associated with it. Each article must be able to have file attachments associated with.
3. Articles must be organized in a category tree. Ability to associate each article with more than one category.
4. Search - by keywords. Options: Only in title, only in article text, both. Ability to filter search results by categories.
5. User-based authentication. Anonymous user must exist as part of the user list. Users can be enabled or disabled, and have roles associated with them.
4. Role-based authorization - the administrator will be able to define the list of roles in the system. Roles can contain other roles (role grouping). Access to various features will be controlled based on the roles which the current user is in. Access control will be set on content categories (category tree). Special role - "System Administrator" will have the ability to manage users, roles, and domains (more on that later). Special role "Domain Administrator" will have the ability to manage users and roles in the domain which the user belongs to.
5. Access control: Access control settings propagate from parent categories to child categories. Access control settings include ALLOW and DENY access. When DENY access is specified it overrides any ALLOW access set in one of the parent categories. Access control will be set on the following operations: Create article, Delete article, Edit article, Create category, Delete category, Edit category, Upload file attachment to article.
6. By default the logged on user is the ANONYMOUS user.
7. Each user will have the following information associated with: First name, Last name, Company, Job title, Phone number, E-Mail, and 20 user-defined fields. Administrator can specify which fields are required.
8. Ability to skin website appearence (master pages + CSS).
9. API: Webservice: Search for articles. Retrieve article content (XML!) by ID. Update article content (ID + content XML).
10. The application will NOT include separate interfaces for administration, content management and browsing. The options available to the current user will be based solely on their respective roles in the system.
11. The user / role system infrastructure will be built in a way easily detachable from the application.
12. A word about domains - users, articles, roles and categories will all belong to DOMAINS. Domains are autonomous "branches" which have their own content (think about an application service provider model). So the system administrator has complete control on the system, and domain administrators have complete control within their own domain. Domains are organized into a tree - parent domains contain (and have access to) child domains. The root domain will be called "Root Domain" (think about windows Active Directory as a model).
1. Only basic design. However - the application must be built for fast change of look & feel. Use "master pages" and CSS for definition of all visual appearence elements. The look and feel is not as important as the ability for a technical person to easily change it.
Deliverables must also include:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
The software will run under .NET Framework 1.1
Likely, under IIS, however other web servers which support the .NET Framework must be able to run the software.
No assumptions regarding the location of the software (i.e. website root, special virtual directory, etc.) will be made.
As a database back-end either MS Access or MSSQL will be used. The software must be capable of talking to both databases.