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:
  1. Upload from Netscape-style bookmarks file
  2. Upload from IE individual file bookmark, files, or URLs
  3. Download (export) Bookmarks (i.e., show in Netscape form)
  4. Download (export) Bookmarks (i.e., show in Netscape form)
  5. Check URL on input
  6. Check URLs regularly or on demand
  7. Search bookmark URLs, titles, meta tags
  8. Organize bookmarks with folders (create folder, move bookmark, delete folder)
  9. Spawn a small window in which to keep bookmarks

  10. List most popular URLs, hosts
  11. 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

Future enhancements


aure@arsdigita.com