Directory of OpenACS Sites
Big Picture
The "Community" section of the OpenACS website still uses Edit This Page and has not been updated in years. This proposal is to begin the work of updating it by replacing: https://openacs.org/community/sites/ an Edit This Page application, with a new package. This package is expected to be an incremental improvement over the current page, and the current vision, and certainly the first iteration will not provide everything we might ever want to know about how OpenACS is being used.
To attract new developers we need to effectively communicate all the possibilities that can be created using OpenACS. One way to do this is to more effectively highlight existing sites.
You can add you comments to this page or the forum thread https://openacs.org/forums/message-view?message%5fid=605925
User Stories
User Stories are a method of defining requirements by creating fictional users who might use the feature.
Mary - Developer considering OpenACS
(see en:docs-eng part of en:openacs-handbook with document guidelines shaped by these requirements: en:docs-eng-reqs -Torben)
Sam - A developer who has just launched an OpenACS website
George - A current OpenACS developer who wants to see a package that he has never used in action on some existing sites
Who
This is a joint project between Solution Grove and Miguel Cordova of UNED.
Why
Goals include:
- This package is primarily a new UI for the existing functionality.
- Improving the OpenACS Community and outreach to new developers.
- Solution Grove is using this project as a means to give back more of our AJAX and Dynamic types experience the community.
- Miguel Cordova is using the project to learn more about AJAX and OpenACS and he will work with his group at UNED to bring what he learns into dotLRN.
- This package will provide a place on OpenACS.org where people who are evaluating OpenACS can see that AJAX can be used with OpenACS without changing the user experience for current frequent openacs.org users.
- This package may be useful during sales for OpenACS vendors, including Solution Grove, to demonstrate the capabilities of our platform.
- This package is an incremental improvement on the current Edit This Page page. The goal is not to provide a complete solution to our desire to understand how users are using OpenACS. However, the design should allow integration with any automated APM based solution that might be developed in the future.
The Plan
Step 1 - Use Dynamic types
Use dynamic-types and categories to create a data structure to collect metadata about OpenACS sites. For details see Data entry screens.
Step 2 - Data Entry UI
Use an AJAX tabbed UI to collect the data
Tab 1 - Basic Information
- Site Name - required
- Description - required
- site url
- case study or video url
- Type of site - Category list, allow multiple selections
- Intranet
- Extranet
- Eccomerce
- eLearning
- Knowledge management
- Content Management
- Type of Organization - Category
- Corporate
- Nonprofit
- Education Sector
- Individual
- Organization Location (someday we might do a google maps mashup for fun)
- City
- State
- Country
Tab 2 - Technical Details
- What functionality does this site provide - Category
- Forums
- FAQ
- Chat
- File storage
- Bookmarks
- Wiki
- etc. we don't want to go quite down to the package level (eg we want forums not dotlrn-forums, forums, forums-applet)
- If possible please provide direct links and descriptions to any interesting implementations of the above or custom functionality. Please indicate if your link is a good example of "out of the box" OpenACS functionality or customization. Both are useful. If your site requires login its great if you can provide a guest account or give an email where users can email if they would like access.
- XINHA text input. I think we keep it simple here.
- Companies that work on this site
- Category list populated from our company list
- Also "In House"
- "Independent Contractor"
- Languages used
- What version of OpenACS kernel are you running? - Category list
- When did you start development? - Date widget
Tab 3 - Additional Details
- Please use the form below to enter any additional details that other people might find interesting. You can use the image button to upload screenshots. Thank you!
- XINHA text area
- Take into account accessibility (e.g. Accessible Rich Internet Applications (WAI-ARIA) Suite concerning accessibility of "Web2.0" technologies including AJAX and the Ajax accessibility examples.
Data Entry
Just as with the current Edit this Page Information will be entered voluntarily by site developers and owners who are proud of their sites and wish to give back to the OpenACS community. Only the most basic information will be required fields, everything else will be optional.
The user who creates the entry should be able to edit it. In addition users with SWA will be able to edit information. Undoubtedly information and links will get stale as they have in the current Edit This Page version. The package should allow granting admin to a volunteer who could maintain information.
Search UI
The search UI should show off progressive enhancement. Functionality should include
Filters based on categories
Tag cloud of the categories and full text search (example: library/search-categories)
Results grid with title, description, url, and other information. The url should have an image of the url when you mouse over it (look at a specific tag on 3ecompass.info and mouse over url for an example).
One Web Site Detail Page
We will also need a page for each entry where we attractively display all the information about the site.
When we list categories on this page (e.g. what features are used) these categories should be links and clicking on the link should take you back to the search interface with all other sites that have that category shown.
Notes
- This package is designed to be an AJAX showcase and make almost gratuitous use of AJAX.
- The use of categories and dynamic types makes it easy to change pick options and data collected so we don't need to think too hard about these choices before we start.
More Bells and Whistles
This is a brainstorming section, not all these ideas will be implemented
- Notifications when a new site is added
- Ratings with an AJAX drag your mouse over the stars interface
- Views
- "Hot Sites" include for the front page
- Random featured site include for the front page.
- Google map mashup with location and/or reverse lookup of IP
- Mashup with something like Delicious, where we look up how often and with what tags the site has been bookmarked.
- Integrate with RSS feeds from user tracking currently under development at UNED
Examples and Links
We are using YUI-ext. An example of what the panel UI looks like.
http://www.yui-ext.com/deploy/yui-ext/examples/layout/complex.html
Tabs can be implemented in the panel interface. Tabs can also be implemented independently from the panel UI. Below is an example :
http://tech.contextsensitivesolutions.org/register/user-new
Scope Limitations
The proposed project is designed to replace one, out of date Edit This Page page. The first iteration should be designed and developed with future features in mind but, by necessity it will not include all desired possibilities, nor will it solve all potential issues.
- No changes to OpenACS core nor to any package that is included in dotLRN are currently anticipated.
- It is not anticipated that many other OpenACS sites would want to use this exact package on their sites. The source code will be made available if people want to browse it.
- This area will not be a very good demonstration area for Dynamic Types because we be exposing the web interface to change the dynamic types except to admin. Creating a demonstration area for Dynamic Types is a good idea but a separate project. People interested in this might want to explore dotcommunity.org and talk with the folks at XArgs, its pretty cool stuff.
- This proposal is not a beach head to put AJAX throughout Openacs.org, indeed it is intentionally putting AJAX demonstrations into a corner of the site that is not often used by day-to-day users and into an area where we highlight the diversity of uses of OpenACS. It is a goal to continue to document how AJAX can be used in OpenACS.
- Integration with contacts and replacing the company listing with contacts is not in scope of the first iteration but should be considered during development and anticipated in future iterations.
- Automated connections to other sites is not included in the first iteration, however it is definitely something that should be considered during development and anticipated in future iterations.
- Accessibility - Olga's points are noted and thoughtful discussion of this issue is in process
- Maintainability - Just as with the page it is replacing there will be maintenance issues. This is an area of the OpenACS where we gather information from humans who have developed OpenACS sites. Gathering information automatically is also a good idea, but it should be in addition to, not replace asking humans directly to describe their sites and to get insight into things like what makes this site cool, what is the purpose of this site, etc. Anything entered by humans will get stale and will need maintenance by admin. We can improve on the current version by displaying fresh sites near the top. Further mitigation ideas include a link for visitors to report out of date info or dead links, and/or automated link checking.