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.
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
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" :)
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
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
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.