Private knowledge management system

There are no exercises on this page. This is just an example of what you can do.

A knowledge management system (KMS) helps people in a company gather information they come across that the company might want to know. For example, BillyBob might come across an article on market analysis that other employees might find useful. He can put it into the KMS. A few months later, BobbyJo might search for “market analysis” for a project she’s working on. The article BillyBob found would come up.

Create a simple KMS with Drupal. It will have rough edges; it doesn’t use the Views module (but you haven’t learned about yet). Still, the simple system will help you learn about content types, and could actually be useful, if you want to keep track of Web pages and other things for projects.

You can try out a solution at Login as BillyBob (user name and password), or BobbyJo (user name and password). Try it, to get a feel for what the system does. Create new IRs, edit them, etc.


This project emphasizes:

  • Content types
  • Taxonomies

They’re described elsewhere on this site.

You’ll create one content type: Information Resource. An IR will usually be a Web page. It should have the following fields:

  • Title
  • Projects: references to terms in the projects taxonomy.
  • Tags: references to terms in the tags taxonomy.
  • Content: the information the user wants to store about the IR (hint: just relabel the body field).
  • URL: the URL of the IR, if it has one.
  • Attachments: files the user wants to attach to the resource, e.g., spreadsheets, Word documents, PowerPoint files.
  • Comments: comments other people make about the IR, e.g., how the information could be improved.

You’ll have two taxonomies: tags, and projects. Drupal creates tags by default. The projects taxonomy is a list of projects the company is working on. Create the taxonomy yourself.

Here’s an example of a resource. Try creating one on the sample system.


BobbyJo created this one. Click on her user name to show account information, and access to a personal contact form.

Projects lists the projects that BobbyJoe thinks this IR could help with. Click on a project name to show all IRs associated with that project. Each IR can have links to an unlimited number of projects.

Tags lists keywords. Click on a keyword to show all IRs with that keyword. Each IR can have links to an unlimited number of tags.

This is what it looks like when BobbyJo enters data for the keywords:

Taxonomy terms

The numbers are ids that Drupal assigns. Nobody types them. When BobbyJo types in a term, Drupal will add it to the taxonomy if it is not already there.

Content is the body field you’re used to. Content contains whatever BobbyJo wants to say about the IR. She can use any text format (Basic HTML…).

URL looks like this when editing an IR:


Link text is what users see on the IR’s page. URL is where their browser goes if they click on the link.

Attachments are files users can download. An IR can have many attachments, limited to 5Mb each. Allow at least txt, doc, docx, pdf, xls, ppt, pptx, png, jpg, and gif files.

Comments are…, er, comments.

There should be a search box on every page. It can be in any region you want.


The KMS is private. You have to log in to use it. Here is what you’ll see if you are not logged in:


The menu only has home and login links. Every page you try to go to will have the same thing, until you log in.

Every page should a notice that the site is restricted to authorized employees.

Menu after login

The menu looks like this once you log in.


  • Home links to the content list page, at /admin/content.
  • Projects links to the projects taxonomy’s main page, at /admin/structure/taxonomy/manage/projects/overview.
  • Tags links to the tags taxonomy’s main page, at /admin/structure/taxonomy/manage/tags/overview.

Hints and things:

  • Install a new D8 in a subdomain.
  • You don’t need to create roles.
  • Give taxonomy admin permission to authenticated users.
  • Give them lots of other permissions, but not ones they don’t need.
  • Only admins can create accounts.
  • Authenticated users can post comments w/o approval.
  • Authenticated users can access the content overview page.
  • New taxonomy terms are created automatically.
  • There should be personal contact forms for users.
  • Use any theme you want.

If you’re not sure about something, try out the sample system, and see what it does. Login as BillyBob (user name and password), or BobbyJo (user name and password).

One list thing: if you want, add your KMS to your eMe, as part of your work portfolio. It will show employers that you got them skillz.