SharedLogWiki:Features

From SharedLogWiki

Jump to: navigation, search

Sharedlog CMS Features


It's written in php and makes use of several (many) PEAR classes and some a few external command line programs. Some features rely on Apache modules and some even require that Apache is a version 2.2.X (currently only for webdav). Some backend classes are also written in PERL, so PERL is also required (for some features), also if you want to incorporate the Instant messenger, we currently have instructions for using OpenFire XMPP server, which in turn requires Java.



Current features:


  • Templates for layout.

  • Multi-Language support. Easily add new language sets. In theory every text string you see on the site can be stored in Language database and can be translated into other languages. Even emails that we send like registration, password change etc... can be sent in different languages.

  • Upload up to 10 images via web form

  • Users can also upload sets of images in zip, rar, tar, gz, bz2 formats. Archives are unpacked and processed. If archives have a folder with images, then an album will be created with the name of the folder. If album with this title already exists, the images will be added to existing archive, otherwise album title will be the same as archive's title

  • the appearance of album can be set in user preferences, currently 3 different templates: image of a folder, a stack of photos and a stack of polaroids.

  • Images are automatically resized and thumbnails are created. Also a user can select and option to add a watermark (like user's own copyright notice) to the bottom of every image

  • The originals are saved to special folder /originals/

  • Many image formats are supported and if the image is not in a 'web-friendly' format like in .bmp or .tiff, then it will be converted to the jpg format for displaying on web page.

  • EXIF data is extracted from jpegs and tiff and stored in the database and can be displayed

  • Some image editing is possible online

  • Spell checker for blog posts and comments

  • BBCode parser for adding blog posts and comments.

  • User can move images from album to album, rotate image or delete it

  • User can edit title of album and its description

  • User can add blog post to personal page

  • User can upload documents in MS Word, OpenOffice, WordPerfect, AbiWord, HTML or text format and it will be converted into html and added to user's personal page (blog). If document contains images, they will also be extracted and saved on the server (except for WordPerfect, for which we don't have image extractor)

  • NNTP newsgroups support. NNTP-to-Web interface with support for binary attachments.

  • Images are zip and other archives can also be uploaded via FTP (pureftp must be installed and configured on the server)

  • Images and archives can be sent to the server by email. Each user can get special email address for submitting emails, so no user does not have to supply username/password anywhere in the email. No special email setup is required. It can even be on a different server. The script checks emails via pop3 protocol using php's imap features.

  • Uploads can also be made via webdav – just map a url as a internet folder on your Windows XP or Vista and just drag-drop images, zips, docs there and they will be added to your blog/album
    For this feature to work Apache must be 2.2.X with mod_dav_svn and optionally with ssl support for secure webdav over ssl.

  • Instant messenger with video chat can be easily setup to use exising user accounts, so users can chat with each-other in real time and can chat with external IM systems like Yahoo, Google, AOL, MSN
    This requires a setup of OpenFire XMPP server, which is also an open source and easy to setup.

  • Blog posts can also be sent to users other blogs like on blogger.

  • Trackback enabled comments.

  • Users can rate/comment on images.

  • User can upload personal avatar. It will also be resized to correct size.

  • Support for swf flash uploads. This can be useful for uploading instructional flash clips like tutorials for software or whatever you want like cool animations or catroons. An HTML file will be automatically created for uploaded flash file.

  • User's location is determined by IP address and recorded into the database during registration and also used when sending error messages to admin.




Features under development (in the order of sooner to later)

  • Creation of slide shows from uploaded album. Totally in Ajax with drag/drop method of selecting and sorting of images.

  • Slide show will be saved in SMIL language file. SMIL can be accessed with RealPlayer. No special server is required to serving slide shows, but more features will be available if you have streaming server. We plan to use HelixDNA server to streaming. Slide shows can also have background music and audio comments for each image. Of cause transitional effects are also selectable by user.

  • Add online Wysiwyg editor for blog posts (create and edit posts in wysiwyg)

  • Add simple plain text editor so users on slow connections and mobile users can use it instead. It will still have spell checker.

  • Support for video streaming with video clip encoding on the server – user uploads clip in avi or mpeg format and it will be encoded (converted) in either flash movie (FLV) or realVideo (.rv)

  • Upload of blog posts by Instant messenger. Suppose you chat online and have some thought that you want to quickly add to your blog. Just type a message and send it to 'special' user account, which will actuall will be a program that will post the message to your blog.

  • Users can create nntp newsgroup for their own blog.

  • Users can have their blog posts also sent to some public newsgroups and have replies posted to those groups also appear on their blog as replies (full synchronization)

  • Support for flickr feeds and also upload user's images and alboms to flickr account.

  • WebCam recording. Users will be able to add video clips that they make with their webcam.

  • Audio recording. Users can add audio commentary for thier images or just add an audio post to their blog by using computer mic or by uploading an audio file in .wav or .mp3 format.

  • Support for XML+XSLT based templates. Is this important?

  • Special support for trimmed-down version of the site for mobile devices (less html)

  • Support for IP telephony like post by phone and phone call notifications. (way later)

  • Support for text-to-speech engine to be used for IP-Telephony and just to use on the website to generate audio (speech) from text and add it as comments for slide show for example



Requirements and optional programs

  • Database backend – MySQL. We are using MySQL 5.0.27 but it will probably work even with version 4.X

  • php 5.2.X (will not work with php 4.X because it is written in OOP and uses php 5 style like __construct(), and __autoload methods. Must have imap, libxml2, zip, and magickwand support (--with-imagemagick). We don't have support for GD because we decided from the start to use ImageMagick for image processing. It supports more image formats and php magickwand functions are very easy to use, plus some external commands from ImageMagick can also be used like to check the image to see if image file is corrupted.

  • php 5.2.X compiled as cgi for backend scripts.

  • Pecl extensions: perl, zip, uploadprogress, rar, php-libclamav (if you want to check for viruses in uploaded files)

External programs (none are 100% required but some extra features will not work without them):

  • Memcache. Not necessary but site will run much faster with a lot fewer calls to mysql is memcache is installed and php compiled with memcache

    </P>

  • Pureftp for ftp upload backend.

  • Postfix with mysql support for supporting email aliases table. Another mail transport is also file as long as it has mysql support. (for upload by email function)

  • Any pop3 server. (for upload by email function)

  • AbiWord for converting documents to html, also can convert docs to pdf really well, can also be used for converting OpenOffice files to html, but we preffer odf2html for that; can also convert WordPerfect docs to html but we preffer wpd2html for that.

  • jpegtran tool is also helpful to have but not necessary. With jpegtran you can rotate and resize jpegs lossless mode, unline with ImageMagick where jpeg rotation is not lossless.

  • Swftools for generating html code for swf files (not 100% necessary, as html can also be generated by hand)

  • Clamav antivirus for scanning uploads for viruses. Not 100% necessary but helpful. If clamav is installed it is also recommended to install php-libclamav so that virus checks can be made directly from php.

  • Apache 2.2.X (2.2.4 is recommended as of now) as it has the proper support for webdav for most webdav clients.

  • Subversion 1.4.X (Berkeley support is not necessafy) This is only if you want webdav upload feature.

  • mod_dav_svn for apache (for upload via webdav)

  • mod_authnz_external for apache to authenticate logins agains mysql database. There are many different mysql authentication modules for Apache, but we like mod_authnz_external since it's very easy to implement. (for upload via webdav but can also be used to allow access to some directory for registered users only)

  • For encoding video files we will most like be using tools from ffmpeg and possibly helix producer from real networks.

  • For DNS server we will probably use myDNS server, but not sure yet.

  • For virtual hosting we will use some type of mysql enabled virtual hosting module, not sure yet.

  • Memcached is very helpful to have and will possibly be a requirement in the future versions. Php should be compiled with –enable-memcache and then pecl memcache module must be installed.

  • Java 1.4 or better in you want to install instant messaging server. It's also possible that we will have some other java programs in the future, so having Java installed is a good idea.

  • Xvfb for Linux server (for doing screen capture and thumbnail shots of websites, not yet implemented)




Personal tools