Cool Summer Internship 2013 Problem Three

We can’t kick off the weekend without a brain twister, can we? 😀 Here’s our third problem to keep you company by Tuesday, April 16th, 10:00 AM GMT! That’s the deadline to submit your awesome solutions. Do not forget about the rules and submit your results here.

The Cloud Warehouse

Undoubtedly, you are familiar with cloud storage. Still, have you ever wondered how they are designed? To find out, you need to address some of the problems that are most frequently encountered while such a model is being shaped.


So, here’s one way to approach the subject! Design a library that would offer App developers a very simple way to store data in the cloud.


For storage purposes, each application must be able to send the “warehouse” all sorts of items: pictures, movies, documents etc. It does not matter how data is stored. Your App should simply be able to put things in the warehouse and, at a later point, remove or fetch them.

Additionally, the App must handle conversion from any data type or document format into a standard storage entity and back.

Each application must have its own privacy policies that define access rules to their items. To ensure privacy of items, an access model should be added.

What you should do

Don’t panic! You don’t have to build the next Dropbox. 😀 Still, you should:

  • Describe the architecture and build the object model
  • Provide API documentation. Think of it as a guide for developers, advising them on how to use your warehouse in their applications.
  • Describe the authentication model. Keep in mind that management of authentication is not the purpose of this problem.
  • Explain the scalability and give arguments as to why your solution can be easily configured with multiple storage engines.
  • Build a prototype using your favorite programming language or the OOP model. Also, provide diagrams and descriptions for them.


We also have a couple of recommendations that will make your life easier. At least this weekend. 😉

  • Try to prevent abuse
  • It is not necessary to use a database, but if you think that it’s helpful, go for it.
  • Make sure that you store information in a redundant way.

Have fun! And remember, if you have any questions, do not hesitate to comment on this article!


You can post comments in this post.

  • Pentru aceasta problema trebuie sa dezvoltam efectiv aplicatia intr-un limbaj de programare ales? Sau trebuie sa oferim o imagine de ansamblu in care sa prezentam ce clase si functii sunt necesare si care este rolul fiecareia in construirea aplicatiei?

    Leona Cilibeanu 11 years ago Reply

    • Design is required.
      Pseudocode is accepted.

      You cannot technically develop it, at most you can write a prototype.

      Blog wizard 11 years ago Reply

  • What tipe of diagrams do you prefer?

    Ciulu Razvan 11 years ago Reply

    • No preference 🙂

      Blog wizard 11 years ago Reply

Post A Reply