Developer Forum »
Building a document centre/library on top of Wednodes
20 posts

We have a client which currenly sells documents on their site (built with Webnodes).
The end users simply log in to their account and downloads the documents they need.

The documents are stored in the FileLibrary in Webnodes, and they are organized in Packages (Dokumentpakker) - in the Content section. 

 

Picture

 

End User Authentication is integrated towards an existing ERP system (Vega SMB).

 

Our client now wants to offer their customers a complete Document Centre/Library. The idea is that the end users can import documents from the Document Packages - and also add their own documents to their document centre.

Some requirements are:

1 It should be possible for end users to edit their documents using the Webnodes Client Agent

2 The end user GUI must be built (by us) outside the Webnodes Edit Gui. 

3 The end users must have the ability to search among their own documents, preferably with lucene. 

4 The document centre must support version control of documents

5 The system must support giving guest access to external users / partners - for a specific folder. 



So my question is - how should I proceed to build this on top of webnodes with respect to the requirements above. 

Or should I build it outside Webnodes using a separate DB (this will make it difficult to use the Webnodes Client Agent)

 

Has anybody done something similar on top of Webnodes? Are there other alternatives to the Webnodes Client Agent out there?

 

/Njål

 

181 posts

Hi Njål!

1 It should be possible for end users to edit their documents using the Webnodes Client Agent

The Client Agent is designed to be used in conjunction with the edit interface, but it should be relatively simple to customize it for your needs. You can get access to the source code.  

2 The end user GUI must be built (by us) outside the Webnodes Edit Gui. 

No problem except the above mentioned issue. Many projects have a custom designed interface. 

3 The end users must have the ability to search among their own documents, preferably with lucene. 

There is no problem to limit the searches to the user's own documents. Edit: Forgot to mention that the Lucene search only searches the latest version of a node.

4 The document centre must support version control of documents

All node types in Webnodes can enable the revision system, so you can enable it for ContentFile and inherited classes. You can then create new version at times that are best for you. You could create a new version each time you save, but in some cases that would create hundreds of versions of a document, and the revision system isn't designed to work well with that many versions. 10-20 is the normal limit for what we recommend. Do you have any thoughts or plans on when you want  to create new versions?

5 The system must support giving guest access to external users / partners - for a specific folder. 

This shouldn't be a problem. 

Vidar

20 posts

Thank you for your answer Vidar! :)

Another thing I am worrying about is Performance/Storage Capacity.

A typical end user (Company) has 100 000 documents/files (50 GB). This is without thinking about versioning.

How much content (GB/number of nodes) can Webnodes handle?

How would you distribute content (files) across different servers?

/N

181 posts

How many customers do you anticipate in one solution(To get a rough estimate of total number of nodes needed)?

In general, Webnodes has live sites with up to 1 million contents, but some of our partners have tested with over 2 million nodes, and reported that it works well. We don't see any reasons why it shouldn't scale to 5 million at least, but we haven't actually tested it. As with a normal database with a lot of content, you need to be more careful to write optimal queries than in a smaller site.

If you really need to, you can have total control over how a file is stored(multiple servers, CDN networks or the cloud) by writing a filesystem provider. All disc access in Webnodes is abstracted, so you can implement a few interfaces to do create your own provider. There's not a lot of documentation on the file system providers yet, so if you can live with storing all the files on one server, we recommend that.

20 posts

The customer anticipates 10.000 customers - with up to 5 GB each - so we might end up with 50 TB of data and 100 million files (0.5 MB average filesize).

So I guess Azure will be the way to go here.

One more thing - do you have any idea if it's possible to modify the Webnodes Client Agent so that it would work with OS X too (using Mono to run it) ? Or would it be better to port it to java (and then wrap it in as a native .app) ?

 

 

 

 

181 posts

I don't know much about Mono on OS X, so I can't say what would be the best option. But it should be fairly quick to test to see if the app works using Mono. 

1