upz, forgot to take out comments
[boxroom-stian.git] / README
blobd3ed61b9a6cc6c0d91cb4c52374a165ab4e980c1
1 Boxroom is a file repository for the web written in Ruby on Rails by Mischa 
2 Berger and others. I worked on the application to make it an intranet for CARE 
3 Indonesia, and added a lot of functionality (and some instability). The 
4 official Boxroom site is http://boxroom.rubyforge.org.
5                                                 
6 What is this branch? 
7 I've added a ton of features from the last Boxroom release, and although it's 
8 not yet rock solid (it's pretty good), I want to share this code with others. 
9 Ideally I would like to get much of this incorporated in the official Boxroom 
10 release, but that might take time, and Mischa might not agree with all of the 
11 features, so through this branch at least the code will be available, and 
12 other people are also welcome to work on the code in a more collaborative 
13 fashion.                  
15 I would love people to use this (no guarantees of any kind given! I don't 
16 think this branch is stable enough for running production stuff yet, although 
17 it is running a production server at CARE :)), and love to see comments and 
18 improvements. I will happy give people contrib rights to a branch at the 
19 public git repository, or you can mail me patches, or branch this code, make 
20 changes and tell me where to pull from.
22 Contact me: Stian Haklev, shaklev@gmail.com
24 Major features I've added (from v.0.6.2, which already contains Ferret 
25 indexing contributed by me)
26 - the virtual filesystem is replicated on disk, which means that if the 
27   database crashes, you won't end up with a lot of files with weird numbers on 
28   them (before all files were stored as uploads/#{id})
29 - upload zip files, choose between extracting all files to the current 
30   directory, or extracting and creating new folders from the zip file. (this  
31   is a part of the code that is not pretty - but it mostly works)
32 - move files and folders to other folders
33 - have selected files and folders zipped for download in one file
34 - mass-deletion of files in a given folder (but still no "select all files" :) 
35   I suck at javascript)
36 - tool for batch adding or updating user information 
37 - important user functions are logged and can be displayed by an admin
38 - deleted files are moved to a trash folder on the hard drive but disappear 
39   from the database (before they were directly deleted)
40 - different icons for different filetypes
41 - page showing server stats (using just *nix tools, works on Mac too)
42 - two tiny messages can be specified for each folder, one each is displayed on 
43   the top of the file listing, and one which is displayed on the upload page 
44   for example with info about file name conventions, who is responsible for a  
45   given folder etc. Inheritable.
46 - changed the layout to more "intranetty", with root folders listed in the 
47   sidebar, and external links on the top bar. This could easily be changed 
48   back.
49 - the world's tiniest CMS front end - just a front page with simple articles, 
50   but the ability to easily link to files or folders contained
52 Possible new features:
53 - quotas, have all the code ready, but need a acts_as_nested_set 
54   implementation that doesn't suck
55 - user interface sugar, from a javascript "select all files" to ajax
56 - and talking about that, a graphic redesign. not me - I'm no designer!
57 - site-wide option to enable automatic "personal" folder creation for each 
58   user (right now, permissions are group based, so this would have to be 
59   hardcoded)
60 - symbolic links?
61 - smoother handling of permissions, users and groups. Right now it does not 
62   scale over hundreds of users and tens of groups. Mainly user interface 
63   changes (not sure how well the code scales with hundreds of groups). Have a 
64   fifth permission group - able to change permissions for people in a given  
65   folder, right now very centralized around admin.
66 - file versioning. This would be neat - I already have code for displaying a 
67   graphical diff in boxroom between two arbitrary files, but never included it 
68   because I could never figure out the user-interface to use.