Unsplash

Browses and presents Unsplash resources

Links

See project liveGo to GitHub repository

Story

I believed that one Unsplash site is enough, but apparently some guys do not share my view and requested prepare new thought similar version before consider joining their honourable company. So, I had no way out. Some logic is disregarded (contacted Unsplash staff in order to understand business logics behind some features, but answered me kindly to mind my own business). Then, you receive an imitation and not a copy. For example, trending search terms are hardcoded and not dynamically generated in any sense. The background image is just a random nature one.

Tech

The objective behind the app (recruitment challenge) was to create something that, in terms of style and functionality, resembled the original Unsplash.

The first page form has slightly different logic than the original one, but it works as required by the hiring company.

The search results page's content is paginated. There is a cursor position sensor that checks if there is still available content and, if so, fetches it, otherwise it indicates that all data has been acquired.To prevent blinking, the first set of photos waits for all of them to be loaded before displaying them; the following sets are lazy loaded.

When you click on the image the modal with enlarged picture and detailed data appears.

The application requires an API key, which presence is checked at an early stage to prevent consequent errors. That may appear redundant, but it is useful if someone copies the repository content and builds app in their own environment.

BTW: it resembles not the most recent Unsplash, but the one from a few years back.

Features

react
redux
unsplash
redux-persist
typescript
react-hook-form