Question Set Instructions: -
There are two problems given below, you can choose to solve both of them or one of them however
if you solve both then that’s better.
- Either [Link] or PHP or Python as base (backend), MySQL for modelling and
Bootstrap/JS/React/Angular as front-end; Aim is to demonstrate end-to-end understanding.
But, this is just a guideline and any other stack to represent this too would be appreciated if
substantiated with sufficient argument.
- We prefer to see solutions using Heroku or Google Cloud (or any other cloud based PaaS).
but, this is a bonus.
- Please convey the timeline before starting.
- It is not important to programmatically achieve everything in limited time, even an
explanation (design note) of how some of the complex features can be achieved would be
appreciated. So, you can choose to implement some features but whatever you don’t
implement, list them and add your opinion.
- Creativity is always rewarding, think of innovative ideas of solving and don’t limit yourself to
what we have mentioned. Bonus is considered for any useful feature added which is not
explicitly mentioned in the requirements below.
- Please read Work Constraints before starting work.
Work Constraints:
1. Feel free to choose the layout as you like or what makes work faster. But, additional emphasis
should be given on flexible layout so that pages can be rendered on browser or device.
2. Feel free to choose a language/platform/system/architecture of your choice. But, you will have to
draw it first. Whether on paper-pen or digital. Doesn’t matter.
3. Feel free to improvise the problem statement. But, the core shouldn’t change.
4. I prefer a PaaS (like Google App Engine or Heroku), but it doesn’t matter. Even a standalone box
(your laptop) is fine to demonstrate. Demonstration would be on-line. No need for web-access.
5. Error handling can be kept to minimal to assure a timeline. But, wherever it is required, code
should have comments.
6. GIT - it is a developer’s friend and one should use it at the maximum
Problem 1: Task Organizer
One of the key problems for any desk worker is to track the work done - and not just track,
track it against time. Create an application that will:
1. Allow a user to define a task
2. Allow a user to start or stop a timer on a task
And the above, without any authentication.
Some inputs:
1. A screen which allows the user to add tasks directly - without any submit button. Just
an enter to add a task
2. When a task is clicked - a time starts near it - it shows the timer increasing every
second.
3. When the task is clicked again, the timer pauses
Problem 2: Dog Search
Using the APIs (might require you to create a free account) [Link] do
the following:
1. Create a page which shows a search box.
2. When a user attempts to enter into a search box any string longer than 3 characters,
show possible matches (Images only) at the bottom of the search bar.
3. The user should not need to press enter. As soon as the fourth character is typed,
add all matching dogs below.
4. When the Fifth character is typed, remove (don’t refresh the page) the images which
didn’t match those dogs.
5. When the sixth character is typed, remove the images which didn’t match the dogs
already shown in step (4). And so on.
6. To start with, in case images are taking time, you can show a list of all matching
breed names and then remove names from that.
To prevent rate limiter, you can show a maximum of 6 photos on each call.