Forum OpenACS Q&A: Portfolio Ideas

Collapse
Posted by Nick Carroll on
Hi, I'm currently working on a portfolio package. These are some of the ideas that I have come up with so far.

The portfolio package provides a personal space for the user. It allows the user to publish their own content freely and easily, with respect to "reflection" (for those that are into the pedagogical aspect of portfolios). It should also have a repository for storing learning artifacts.

Furthermore, the portfolio package must allow the user to organise learning artifacts and content in way so that they can present it to a specific audience. Tools are required to customise this presentation, as well as assist in conveying the knowledge and experience that the user has.

I've chosen OpenACS because there are existing applications that can be used. The applications that I am considering are acs-subsite, weblogger, and file-storage.

I envision that each user will have their own personal space, by this I mean having their own subsite, which will be an instance of the portfolio package.

So based on a username such as "ncarroll", my personal space will be https://openacs.org/ncarroll where my personal space is simply an instance of the portfolio package with an instance name of "ncarroll".

Within this space, the portfolio will mount weblogger and file-storage. As well as other portfolio specific tools, such as a matrix for conveying skills, and expertise obtained for a specific skill. Other tools might include the ability to customise the portfolio with different CSS style sheets.

I believe a weblogger will be a useful tool for creating unstructured artifacts. Which is simply reflecting on a particular reference or resource in a free environment. This differs to structured artifacts, which are form-based (similar to surveys), where the user provides information for a specified topic. The structured artifacts tool will need to be developed, but could be an extension of the attributes package (although I don't know much about the attributes package).

Another package that will need to be developed is portfolio-admin. This package will be used to generate the portfolio spaces for users, ie mount instances of portfolio that have been renamed to users' usernames. Although this can be done manually now, it would be a tedious and monotonous task for a user base of a few hundred. portfolio-admin will also be used to delete or archive spaces, etc.

I can get this working as a prototype in the next couple of weeks. Should be useful for comments and feedback.

Collapse
2: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
I was just talking to Rafael about using subsites. He said that it might not be a scalable solution, and that I should just mount applications at a subdirectory instead of using subsites. What do people think about this?
Collapse
3: Re: Portfolio Ideas (response to 1)
Posted by Dave Bauer on
Why aren't subsites scalable? If they can't scale to do this, maybe we need to fix the problem.

I think using subsites makes it much more flexible. Subsites are for creating groups of packages.

Collapse
4: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Well Rafael was basing his assumption that acs-subsites has to replicate permissions for each subsite.

To be honest, I haven't used acs-subsites for large projects, so I don't know. If you think it will scale then I will consider using acs-subsites.

Collapse
5: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
I was thinking of calling this package dotfolio, or should I just call it portfolio?
Collapse
6: Re: Portfolio Ideas (response to 1)
Posted by Rafael Calvo on
Hi
I do not have much experience with subsites either, but I do not think they were designed to be instatiated 55,000 times (the number of students and academic staff in Univ. of Sydney).
For example when you create a community in dotLRN (a bunch of applications associated with a subsite) it takes a while to load. I assume it is creating an instance of several acs_types...
Is this correct?

Rafael

Collapse
7: Re: Portfolio Ideas (response to 1)
Posted by Jeff Davis on
I think the work I have started for tip 76 would be useful for you. We create lighter-weight versions of acs-subsite that allow for the features of acs-subsite without necessarily providing any of the subsite pages, so you have control over eg. what admin pages are there.

The overhead for subsite creation is primarily parameters and partly application group. The lightest weight way to do this would be create a single instance of the user-portfolio-subsite package and mount it at multiple nodes.

What you give up doing that is the ability to have "members" per user subsite and the ability to specify per user parameters via package parameters. It would be lower overhead at the expense of flexibility.

Collapse
8: Re: Portfolio Ideas (response to 1)
Posted by Jeff Davis on
I think "portfolio" is too generic (plus I think a pretty substantial fraction of the people that heard the name would think it does something different than it does).

One other thing you might want to look at is the stuff we did in london for using install.xml templates for subsite creation. There is an example in the community of practice code with how this works. install.xml and the place it's called (look for apm::process_install_xml).

Collapse
9: Re: Portfolio Ideas (response to 1)
Posted by Malte Sussdorff on
Maybe it is due to my business education or due to the fact that I'm not a native speaker, but the name portfolio doesn't bring up the image of a system as you describe. Not that it matters much at the moment, but I was thinking about the feature list of packages and the name raises different expectations (has to do with stocks, handles an inventory, things like that).

But as I said, it might just be me.

Collapse
10: Re: Portfolio Ideas (response to 1)
Posted by Rafael Calvo on
Malte
It is not your English or business educcation, is that the term used in the eLearning community was not well chosen. I think the origin is more from the humanities, for example artists normally keep portfolios.

IMS calls the relevant specification 'ePortfolio': http://www.imsglobal.org/ep/index.html

Some more info:
http://www.deskootenays.ca/wilton/eportfolios/whatitis.php

Other also called them webfolios:
http://www.elearnspace.org/Articles/eportfolios.htm

Competitors (i.e Sakai with http://www.theospi.org/)
called them portfolios so I think that is the only way to go.

cheers

Rafael

Collapse
11: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Jeff,

Would it be possible to instantiate the portfolio package using the portfolio.info file via callbacks? I'm not sure which event would be appropriate to do this...

before-install
after-install
before-instantiate
after-instantiate
before-mount
after-mount

To me the instantiate and mount events are the same, but there must be some difference that I don't know of.

Once instantiated, the portfolio-admin package can be mounted at different URLs.

Collapse
12: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Jeff,

Sorry, I didn't realise you were explicitly calling the install.xml file from an event. I think that is what I needed to know.

Although I would still like to know the difference between the instantiate and mount callback events.

Thanks,
Nick.

Collapse
13: Re: Portfolio Ideas (response to 1)
Posted by Jeff Davis on
Instantiate creates the package instance (so there is a package_id and package specific parameters, etc) but does not create a site_node. Mount is the act of associating a package with a site node. Note that some package instances are not mounted at all and some are mounted multiple times (the same instance). The most common case is that you both instantiate and mount at the same time (which is why there is an instantiate and mount callback).

In this case, if you wanted to do all that work in a callback I would do it in the after mount callback.

Collapse
14: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Jeff,

In install.xml you have mounted acs-subsite at $base_url. Is acs-subsite necessary? I thought this approach was meant to avoid using acs-subsite?

I think the install.xml template approach is exactly what I'm trying to do for starters.

Collapse
15: Re: Portfolio Ideas (response to 1)
Posted by Jeff Davis on
that one mounts acs-subsite because it's creating a subsite,
you could mount some other package instead. I have other
examples that make "subsites" without using acs-subsite
but they use code that we have not committed to openacs
so I am not sure they would be that helpful.
Collapse
16: Re: Portfolio Ideas (response to 1)
Posted by Bruce Spear on
I'm delighted you brought this up, Nick! It got me thinking about how to make this sort of thing useful. What are your design requirements and/or references. Are you familiar with the Pennsylvania State University portfolios? What are your models?

Let me toss out a couple of user scenarios that would make sense to me. Let me say that I start with the assumption that I'd want this to be easy to integrate into instruction: to find ways to design it that would lead both students and instructors to say "let's build this into our courses and program". The problem with the Penn State model, as I see it, is that it is a 1997 flatfile technology and self-promotion conception that serves marketing and slight web literacy functions. What I'd like to see would be something that delivers real value for limited user investment. Here goes.

I'd like to see each student and each instructor have e portfolios that, upon joining classes or groups, would automatically provide for integrated functionality.

  • For example. An instructor could set up a homework drop box that would appear automatically on each student's site, sort of like what we have now, except that the instructor could, for instance, download all assignments from every student in one zip file.
  • Further, that when the instructor does so he gets a list of all students who have submitted files into this assignment drop box, is given the option of sending a notification that says the instructor has collected this stuff and the laggard is now in the status of "laggard", and that at any time the "laggards" could be downloaded as in one zip.
  • Further, as an instructor I'd like to be able to browse through all the submitted assignments with an automatic reader window like in the X1 program, which opens .doc, .pdf, and many other formats as you drag through a file list: this way, I could quickly review dozens of homework assignments without having to download them (a bunch of clicks) and open them (a bunch of clicks).
  • I'd like to be able to download only those forum entries of a particular student in my class, no matter how many forums and forum threads he is part of, and formatted nicely for printing, so I could collate his written work and group communications.
  • I'd like to be able to click through any of these returns and be delivered to the student's site and browse through it without having to become this user.

Now for a general formatting design. Blog is terrific. I think the file storage might have an option that works like the Bookshelf feature whereby with each file or url is a dialogue that asks you to identify the object title and one or more boxes to offer annotatation or commentary, and an expandable display so I would see a list of objects the student has collected, be able to expand them to see his annotations, and even view them like the X1 (or even just the first few lines). Right now, for example, I have a student who is contesting her grade, and I'd like to view and download her four papers and ten forum entries to see her forum participation next to her written work.

The X1 (http://www.x1.com/) viewer I think simply tops, and having tabs like Dotlrn and X1 do but for a student's e-portfolio would allow me to browse quickly through his/her space to get at what he/she has written and so gain, in just a few minutes, an overall impression before downloading and printing a file for more study.

In this way, the instructor would have a very quick, easy way to get through whatever design elements the e-portfolio might make to the text (I'm not talking here about math, music, etc., just text-based courses to start), and if the instructor wants to use this, he or she will more likely make the e portfolio a course requirement. From there, the students can worry about presenting themselves well, and if we structure their spaces in content terms, we will be guiding them to what matters. The UPENN sites suggest that colors and smileys matter, which they do up to a point, but I think the real return is giving students a good reason to present themselves professionally and well, in substantive terms, and insure that by making it very easy for instructors to check them out and offer feedback.

The cost/benefit analysis here is crucial: it has to be easy for the instructor: worry about presenting them with meaningful stuff they can view with no more than two clicks: one to the tab for category, the other to the idem, which magically opens up in the viewer: that's lots of information return with little work. I'd think such integrated functionality would make this applet a killer! What do you think?

All the best, Bruce

Collapse
17: Re: Portfolio Ideas (response to 1)
Posted by Rafael Calvo on
Bruce
The problem I see in your model (if I understand correctly) is that is driven by the 'class' concept. I mean is very close to the functionalities provided by an LMS (i.e. dotLRN). The ePortfolio should be integrated to the LMS but should be centered in the student. I mean, it goes across all the subjects and years he spends in Univ (not a single one), and then (hopefully) is a lifelong learning experience, so (if the university supports their account after graduation) they can use it to keep track of their activities as professionals.

There other reasons to make a clear difference with the LMS:

- Univ might alreay be commited to an LMS technology and they would not start trying a new one.
- The Univ might decide to keep them as separate systems if they want to provide support after graduation (scalability, different cost centers)

In our case, if everything goes well we would start witha a group of 200 students, within a single class.
In a year of two, if the project is successfull I would like to see our 3000 engienering students using it across *all* courses.
Of course, if the use of the portfolio is not directly related to an assessment item, they might not care much about it. But, if they could use it as a tool to show prospect employers, then the motivation should be quite high. This brings the issue of having different 'skins' for each student, and letting them show their portfolios in different ways to externals like employers. The subsites model is great for this

cheers

rafael

Collapse
18: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Hi Bruce,

I think Rafael is correct in making the distinction between an LMS and an ePortfolio. An LMS is teacher centric, and an ePortfolio is student centric. The scenario that you described would be best handled by an LMS such as dotlrn. Once the assessment has been graded, the student could then export the assessment and teacher's comments from the LMS to their eportfolio. The LMS should be used as a place for the student to fabricate learning artifacts, and the ePortfolio should be a place for archiving these artifacts.

I will be modifying the file-storage package so that the user interface displays reflection options next to a file. That way the student can link a file to a blog entry for reflection, or to a more structured form-based reflection exercise. This package will be called "repository".

Regards,
Nick.

Collapse
19: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Bruce,

Part of my project is for some level of integration with an LMS. Possibly through Web services, as I have done a fair bit of research into web services. The other possibility would be to use RSS. Forums in openacs can now be enabled to publish an RSS feed. It might be possible for a student's portfolio to subscribe to a feed, and automatically link their portfolio to their respective postings. This might be considered a hack, as you'll need some form of federated identity management to say that a forum posting belongs to a user that also owns a portfolio in a remote system... assuming that you run dotfolio on one server, and dotlrn on another.

BTW, I've already started calling the portfolio package dotFOLIO. Mostly because it would complement the dotLRN project.

- Nick.

Collapse
20: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Jeff,

The proc "apm::process_install_xml" doesn't exist in openacs 5.1.5. Will you be checking this into HEAD?

Collapse
21: Re: Portfolio Ideas (response to 1)
Posted by Jeff Davis on
This has been on head for quite a while and is well tested
since it's in the install process. Also the other packages
as a subsite is only on head as well. There are no
plans to backport either.
Collapse
22: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Jeff,

Do you get this error when you try to install lars blogger using the install.xml template approach? Do I need to implement a service contract in lars-blogger?

invalid command name "lars_blogger::install::package_instantiate"
while executing
"lars_blogger::install::package_instantiate -package_id 939"
("eval" body line 1)
invoked from within
"eval $command"
(procedure "apm_invoke_callback_proc" line 37)
invoked from within
"apm_invoke_callback_proc -package_key $package_key -type "after-instantiate" -arg_list [list package_id $package_id]"
(procedure "apm_package_instance_new" line 17)
invoked from within
"apm_package_instance_new -package_id $package_id -package_key $package_key -instance_name $package_name -context_id $context_id"
(procedure "site_node::instantiate_and_mount" line 39)
invoked from within
"site_node::instantiate_and_mount -node_id $node_id -context_id $context_id -node_name $mount_point -package_name $instance_name -package_key $pac..."
(procedure "::install::xml::action::mount" line 64)
invoked from within
"::install::xml::action::mount domNode0x319750"
("eval" body line 1)
invoked from within
"eval [list ::install::xml::${type}::${name} $node]"
(procedure "apm_invoke_install_proc" line 10)
invoked from within
"apm_invoke_install_proc -node $action"
(procedure "apm::process_install_xml" line 35)
invoked from within
"apm::process_install_xml /packages/dotfolio/lib/install.xml [list base_url "/dotfolio/$username" name $username]"
invoked from within
"set out [apm::process_install_xml /packages/dotfolio/lib/install.xml [list base_url "/dotfolio/$username" name $username]]"
("uplevel" body line 3)
invoked from within

Collapse
23: Re: Portfolio Ideas (response to 1)
Posted by Jeff Davis on
no we don't get that error. I installed head today and it
installs a bunch of instances of lars-blogger and it worked
fine. The missing proc is in lars-blogger/tcl/install-procs.tcl
afaict.
Collapse
24: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
I think it might be that I didn't restart the server after the automatic install. I don't want to add the "restart-server" url to my install.xml like in dotlrn, as I do not want to keep restarting the server after each account is created. I guess I can just post a message stating that you have to restart the server if the dependent applications have *just* been installed.

Perhaps we could include conditional statements into the install.xml file as well? It could end up having the same functionality as an Ant script.

Collapse
Posted by Michael Feldstein on
Have you thought about tying in with the Open Source Portfolio Initiative (http://www.theospi.org/)instead of building from scratch?
Collapse
26: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Hi Michael,

I've already had a look at OSPI, and I wasn't too impressed with what it provided. Please refer to https://openacs.org/forums/message-view?message_id=270277 for my evaluation of Sakai.

OpenACS already provides a lot more functionality in independent packages like file-storage (artifact repository) and weblogger (reflection). Which leaves new development for a graduate attributes matrix, portfolio presentation and standards compliance.

The only foreseeable integration with OSPI will be through standards (IMS ePortfolio/LIP). After enquiring about these standards with the OSPI team, it doesn't look like implementing these standards are on their radar just yet.

Collapse
27: Re: Portfolio Ideas (response to 1)
Posted by Michael Feldstein on
I can't argue with your observations about Sakai, except to add that it's really too early to pass judgment. As an employee of a SEPP institution, I can tell you there's a lot more activity apparent from the inside. But, given how hard it is to develop a mature set of applications and frameworks --not to mention a mature community-- I think Sakai has a couple of years to go before they have a shot at competing with dotLRN in terms of both feature-richness and quality of implementation.

As you point out, OSPI, though now related to Sakai, is its own project and is somewhat further along in terms of both the software and the community. It sounds like you know more of the details of the system's guts than I do; I can only tell you that one of the more innovative SUNY campuses are experimenting with it and have been giving positive reports so far.

Collapse
28: Re: Portfolio Ideas (response to 1)
Posted by Nick Carroll on
Hi Michael,

From a research point of view, my approach to software frameworks has changed over the years, and I have become a big believer in true open source projects like openacs. OSPI was of interest to me as the community was clearly adopting an open approach. However, their recent integration with Sakai makes this openess a little bit more complex.

I understand the reason for establishing SEPP, as support is a big issue with large institutions that are considering an LMS or any other major software investment. However the model doesn't work for research. Small research groups just can't afford the annual fee of $10,000. And even if I had the contacts, I still wouldn't be able to persuade my University to become a SEPP member as they are locked into WebCT... probably indefinitely. Any other system used within my University is considered a "feral" system.

So my goal is to establish a true open source portfolio application, and I believe this can be done with OpenACS and the dotLRN community. My primary goal for developing a portfolio application is for research, but I hope the outcome of which can lead to a useful portfolio application.