Bookmarks System
part of the
ArsDigita Community System
by
David Hill and
Aurelius Prochazka
The Big Idea
People working together may find it useful to share bookmarks with each
other. In addition, someone who moves around from computer to computer
may find it useful to store bookmarks on a central server rather than on
individual desktop machines.
Parameters
; for the ACS Bookmarks System
[ns/server/yourservername/acs/bm]
; optional, defaults to main site owner
SystemOwner=philg@mit.edu
; main page title
SystemName=Bookmarks System
; text decoration for dead links
DeadDecoration=<i>
; text decoration for folders
FolderDecoration=<b>
; text decoration for bookmarks invisible to the public
HiddenDecoration=<font color=#bb0000>
; background color of folders
FolderBGColor=#f3f3f3
; background color of files
BookmarkBGColor=#ffffff
; size of largest bookmarks file permissible to upload
MaxNumberOfBytes=2000000
Function-by-function Spec
Here is a list of functions for a complete bookmark system:
- Upload from Netscape-style bookmarks file
- Upload from IE individual file bookmark, files, or URLs
- Download
(export) Bookmarks (i.e., show in Netscape form)
- Download (export) Bookmarks (i.e., show in Netscape form)
- Check URL on input
- Check URLs regularly or on demand
- Search bookmark URLs, titles, meta tags
- Organize bookmarks with folders (create folder, move bookmark, delete
folder)
- Spawn a small window in which to keep bookmarks
- List most popular URLs, hosts
- Allowing public viewing of a users bookmarks by others
Some of these functions like importing and checking bookmarks can take a long time, so in this module there is extensive use of
ReturnHeaders ... ns_write "..." which streams out to the user to show that progress is being made.
The idea of storing bookmarks on the Internet rather than on your hard
drive is not a new one. Several sites already serve this purpose:
However, this is ALL the sites really provide, whereas with ACS a
person's bookmarks become part of a user profile that includes
contributions across all modules.
Our data model
This system is built on two tables, one that holds the URLs and
URL-specific information, and another that indicates which users have
bookmarked which URLs. Folders are treated the same as
bookmarks, with a folder_p column set to 't' and no URL information.
Each bookmark or folder has a parent_id that references a folder in the
same table or is NULL indicating that it is a top level item.
Limitations
- The javascript folder system is pretty
slow, but instead of trying to optimize it, we introduced the ability
open/close folders on the regular html page.
- You can't move
bookmarks around within a folder, just to a position at the end of
another folder, so organization is somewhat limited.
Future enhancements
- Ability to correlate your bookmarks with other users with similar interests
- Ability to sort bookmarks by Title, URL, date added/modified
- Ability to manually reorder bookmarks within a folder. Currently, they
always appear in the order in which they were added.
aure@arsdigita.com