Search code examples
javaarchitecturesocial-networking

java architecture - which technology stack and plugins to use for this social networking / video editing site idea?


To be succinct:

This startup is developing a social networking website specifically for video editing. (So, one of the greatest technical challenges is moving around, upload and download, or large files >2Gb). The producer decided to go with Java, and his developers have recommended Liferay as the framework to build it all. Now, when I got on board I advocated using Spring and Grails, but i`m actually not sure which exact technology stack & plugins to use to develop this application. I hope you guy would help me out. The requirements are as follows:

  • be able to handle large file upload/download
  • social networking: a project has many collaborators, a person works on many projects, a project is owned by a project manager, there are status updates and like buttons & commenting for videos and photos.
  • messaging: messaging like email, and messaging like chat
  • project management (have people and raw video files, eventually end up with a marketable movie)
  • some form of version control (but which repository should be use? jackrabbit? svn? filesystem? something custom?)

So you see some problems with this: we're reinventing the wheel (version control, project management, email, social networking). But the question I`m asking here is: what Java technologies should we build this upon? Is Liferay a good choice? What about Spring+Grails? Any other ideas?

Thanks for your input!


Solution

  • messaging: messaging like email, and messaging like chat

    I would advice you to use redis because it is lightning fast. Jedis is the most popular redis client for java.

    some form of version control

    I would advise you to use git and maybe github to host your project. Github will cost you some money, but github is seriously the best.