Skip to content

Instantly share code, notes, and snippets.

@puffin
Last active March 10, 2017 12:53
Show Gist options
  • Save puffin/72b43786a7f8b756b0ad0c482516a61e to your computer and use it in GitHub Desktop.
Save puffin/72b43786a7f8b756b0ad0c482516a61e to your computer and use it in GitHub Desktop.
Mobile App Challenge

The Challenge

Your challenge is to develop an AWS S3 storage analysis tool. To test your tool, you will have to create a free Amazon account (if you don't already have one).

Specifications

The tool is a mobile app that returns informations over all S3 buckets in an Amazon account.

The app should provide a clean interface and navigation system to display informations. The final app should offer an authentication system for user's to login with their AWS credentials.

The app must returns the following informations:

  • Bucket name
  • Creation date (of the bucket)
  • Number of files
  • Total size of files
  • Last modified date (most recent file of a bucket)

The following options should be supported:

  • Ability to get the size results in bytes, KB, MB, ...
  • Organize the information by storage type (Standard, IA, RR)
  • Filter the results in a list of buckets (bonus point for search support)
  • Ability to group information by regions

Some additional features that could be useful (optional)

Some statistics to check the percentage of space used by a bucket, or any other good ideas you could have, are more than welcome.

Rules

  • You should program in iOS swift or Android.
  • Your are free to use the SDK of your choice.
  • The overall performance of your app will be evaluated.
  • Your code must be made available as a git fork.

Advices

  • Try to design and implement your solution as you would do for real production code. Create clean, maintainable code. This is not a programming contest where dirty hacks win the game.
  • Feel free to add more features! Really, I'm curious about what you can think of. I'd expect the same if you worked with us.
  • Documentation and maintainability is a plus.
  • Don't you forget those unit tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment