Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to begin planning of a system that would be both client management, and document management, with tools built in to do analysis on all of the transactions, etc.

I'm wondering what are the considerations I need to be mindful of at the beginning stages so that when I need to scale up I haven't shot myself in the foot in the beginning.

I also need to make sure that it is mobile accessible and not just traditional web accessible.

I've never done a large scale system like this and I have ample time to plan so any suggestions are much appreciated.


I also need to make sure that the handling of data would be secure because it would be sensitive client data.

share|improve this question
it would help if you specified the programming language that you want to use (e.g. java, c#, php, etc.) – linkerro Jul 27 '12 at 6:22
@linkerro I don't really know, and am open to any suggestions. – ihtkwot Jul 27 '12 at 16:53
Rather than building something from the gound up, have you researched any existing ECM software? Just curious. – user60301 Jul 27 '12 at 21:19
@mkulesz no I have not considered ECM software. Do you have a suggestion or further comment? – ihtkwot Jul 30 '12 at 19:45
up vote 3 down vote accepted

You need to think of at least three distinct systems in the beginning.

  1. Backend/API
  2. Web interface
  3. Mobile Application

And, later on think of an additional system

A. You need to build the Backend/Server/API such that it is only concerned with data. Read about REST based APIs to start with. This API should most preferably receive and return data in JSON. The benefit of building the system like this is that view(s) are very clearly separated from data.

B. You can work on 2 & 3 in parallel. You can use javascript mvc framework for Web. Also, read a bit about the MVVM design pattern.

share|improve this answer

There are several frameworks that may provide this flexibility, and one of them is ASP.NET MVC latest version. This framework creates a mobile ready MVC 3.0 project using the Razor's view engine and jQuery mobile. Both mobile and desktop versions can be tested using mobile emulators or browsers.

More information for reference:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.