This assessment awards an Intermediate level certificate.
The challenge is to implement an image gallery page with functionality similar to lightbox, lightbox2 or fancybox. It should be able to retrieve the data from public API of your choice, for example, one could use flickr. The other requirement is to use plain JavaScript without dependencies (e.g. jQuery).
Deliverables
The deliverables will be a GitHub code repository we can browse through and with clear instructions for running the app.
What we are looking for:
A web page with image gallery. It should have at least 5 images fetched from public API of your choice.
On image click, it should display an image preview in dialog with next/previous buttons.
UI should work without refreshing.
Only native JavaScript should be used, libraries such as jQuery are not allowed. You could use CSS pre-processors or post-processors (PostCSS, SCSS, LESS, etc.), but not CSS frameworks (bootstrap, materialize, etc.).
It should work without errors in the latest versions of Chrome, Safari, Firefox, Edge, and IE.
Skills to be graded
Web Frontend (HTML structure, JavaScript code quality)
UX Design and Prototyping
Testing, CI/CD, and Site Reliability
Functionality
Communication
Please find our submission and grading guidelines here. Your priorities are:
Hit the deadline you assign yourself with all requirements met.
Produce beautiful and maintainable code. You may wish to spend a few moments thinking of how another developer may wish to extend your work.
Your code must be ready to be deployed to heroku.com without any issues
Please feel free to send any additional questions our way.
Why re-invent the wheel and write yet another lightbox?
This way it is easier to explain what should be done via examples.
Why native JavaScript?
This challenge tests software engineering capabilities rather than the ability to glue libraries together. In most of the companies, there is already a developed project which requires maintenance and sometimes nontrivial hacks. We would like to make sure you are good with fundamentals.