Building a Student Portal -- Response to a Question from Miguel Guhlin

6 min read

Over on his blog, Miguel Guhlin asks:

Anyone have suggestions on how to respond to this question? I welcome all brainstorming ideas...

We are ready to implement a student portal (with teacher and parent portals to follow) for our 1:1 campuses. We would like for this portal to be a web-based, searchable, "pretty"

While "pretty" is subjective, this is one place where spending a little time with either an ID or a graphic designer, or both, will benefit your site. "Pretty" has a frequently overlooked cousin, "Usability" -- sorting out your navigational structures (done in Drupal using the core block and menu items), and making sure your theme enhances these architectural decisions, will often get you both Pretty and Usable, which is a winning combination. Starting with a solid base theme, like Zen, helps you theme your site in a time-efficient way, particularly if you and your team are learning how to design/theme in Drupal. Drupal can be themed pretty effectively via css alone; if you have someone on staff who can work in php, there really isn't much you can't do. Also, if there is one element you decide to outsource, the theme is a pretty good choice.

container for all of the learning materials that we've purchased and/or created for students, including audio books, legal MP3 music files,

The Audio module -- it can generate iTunes compliant feeds, has an embedded flash player, and can be used to create playlists.

clip art, videos and animations,

The Embedded Media Field module (used along with Content Construction Kit, or CCK) allows you to embed and play media from within your site, and embed videos from external sites, such as the Internet Archives/etc. If you want more robust video handling (ie, something that will convert various formats into flv video) use the Media Mover or the FlashVideo modules. In very general terms, Media Mover is designed to work as a media processor with a full harvest --> process --> store workflow; FlashVideo works in a similar way, but has scaled down flexibility for storing media on external locations. Either FlashVideo or Media Mover will get you a site that, to the end user, feels like a YouTube clone.

For most cases, Embedded Media Field does all that's needed.

documents, presentations, and such.

For images, use ImageField (along with CCK), Imagecache (for on the fly scaling of images) and Lightbox2 (for a clean image gallery functionality). This combination will let you store full size originals while generating thumbnails and scaled down versions of the image, and displaying the images inside a clean gallery, all from one upload.

For documents, the easiest thing is probably a content type where you upload files. If you are uploading pdfs/word docs/ppts/etc you can create a text description to simplify finding the doc via searching. If you want to get into coding, there are ways you can extract text from various other formats and expose that to the search index, but that is an added level of complexity that, depending on your goals, may or may not be worth it.

Edit, March 29, 2008 For Drupal 6, it looks like there is now a module for this -- the Search Files module "allows searching through the text of PDF, MS Word, plain text, and other types of files in given directories of the server." End Edit

We have all of these now on a shared server on our Windows network and the students can access them fine. However, it is not easily searchable and does not provide a way to include a description of each resource, along with other pertinent information (thumbnail sketch, Lexile reading level, etc.).

For each of the resources listed above, you can include full text descriptions, alongside controlled keywords (for things like lexile level, etc), alongside freetag folksonomies (a la delicious). Additionally, using CCK, you can create custom forms/storage mechanisms via the web browser, without writing a single line of code.

And, using the Views module (bascially a web-based query builder/display tool) you can choose how/to whom/where/when you display your data, and filter on keywords.

We have looked at several "document management" solutions, but I don't really feel like they are as broad as what we would like to use. We've also looked at Microsoft SharePoint

Ahh, Sharepoint. Recoil from the functionality; run screaming from the expense :)

, but are frightened by how expensive it is on both a one-time and a recurring basis. We have a Moodle server already, but this doesn't seem to really fit well there as we are not interested in running "classes" right now.

Within Drupal, you could also allow specific users (as defined by role) to create informal working groups using Organic Groups. These groups can be fully public (both in content and enrollment), fully private, or some mixture in between.

Drupal also gives you tools for flagging inappropriate content, setting up publishing workflows (allowing, for example, a submission --> review --> edit --> publish workflow for a newspaper/magazine), setting up private content between users, setting up social networking, online portfolios, etc, etc, etc.

Since some of these materials are purchased and so have user limits, we would also need for this system to use Active Directory to authenticate our users.

LDAP Integration module.

What are you using to run your student learning portals? How is it working? How much did you have to spend up front?

Everything I have listed here is freely available on drupal.org.

  • Combined cost, Purchase and Licensing: 0
  • License Renewal Fees: 0
  • Pricing structure based on number of users: none -- as many users as you want.

I could go on...

Like any system, Drupal has a learning curve, and this is also an area where getting outside help to streamline building internal capacity can save you person-hours, and therefore money. When working with an outside person, always make sure there is a mechanism for archiving the content of these trainings, so that the process of training also jumpstarts the process of creating a body of documentation about your system.

How much maintenance is required?

Server maintenance is pretty standard, and I'd recommend a LAMP stack. For the Drupal codebase, I'd plan on 1-2 hours a month for module upgrades. These can generally be scheduled, and the upgrade process can be made fairly painless by setting up three sites: your production site (the one where everybody is working); your QA site (the one where you experiment); and your backup verification site (where you make sure that your backups work). The QA and the backup site can be run on the LAN, on a pretty anemic machine.

Feel free to ping back with any questions.

, , , , ,