(ˢᵒᶜⁱᵉᵗʸserver) aims to be a platform for developing collaborative applications.
What are the elements of collaboration?
In a collaboration platform we need features to manage these elements.
One way to manage them is to organize and structure them.
People are organized in groups. Groups are structured into hierarchies. Documents are structured into topics, areas or containers. Communication is structured into topics, threads.
In this article we'll focus on documents and how to structure them.
The primary concept to structure documents in sTeam is a Room. Rooms can be nested, and they can have Doors or Gates to connect them. Doors can be one-way or bidirectional.
Imagine a library, each room is designated to a topic. The room is divided up by shelves, each about a different subtopic. There are doors that lead from one room to the next. Or visit an art-gallery. Again each room is designated to pictures of a certain topic. A guided tour lets you follow a path in one direction from one room to the next.
Now picture yourself as the librarian, or the gallery-curator. Not only will you want to read the books, or look at the pictures, but you are the one to decide on the structure, so you will want to layout the rooms and connect them according to the topics that you cover, and the order in which the gallery should be explored.
We need to find a way to model this kind of structure in a two-dimensional web-interface. The navigation between Rooms, the ability to create and move rooms, creating one-way or bidirectional Doors.
Now we need to look at the documents: There are many kinds of documents:
markup-text (markdown, html, others)
- xml, json, csv
- object (instance of a script)
Some documents consist of different parts:
- archive (zip, tar.gz)
- multipart document
- multilanguage document
We probably want to somehow distinguish those visually.
Again, you are the librarian or gallery-curator and you want to move books and pictures around to their topics. You will add new books, or update them with new editions. You will remove books that are obsolete, or move them into an attic. You may feature some books on a display table, and store others in the shelves.
You may arrange them by title, or by author, or maybe by date.
From this mental model we can extract a few actions that are common to all documents:
You have a whole team of librarians, and each one is responsible for a specific area. Your librarians are working together to decide how the books should be structured. They add comments, descriptions, keywords and other attributes. They also decide who should be able to read a book. Is it suitable for children?
- access control
Lets take a more concrete example: A group of academics working on a research project.
There is code, papers, reports, data, references to other work and to external resources. They will need to be organized in topics according to the different aspects of the research project. As the research progresses, and new things are learned, topics will need to be adjusted, papers rearranged, reports updated, references and connections between topics changed.
The structure lives and evolves. and so do the documents.
In conclusion, there is a lot of activity around document management, and there are many different scenarios possible.