--- GA: UA-83160642-4 tags: t1.gl/Public, t1.gl/Assessments --- # <small>Frontend Developer Assessment (plain JS) </small><br>Lightbox {%hackmd hp8GBradSpO0m-MA4UKFRg %} :::success :moneybag::moneybag::moneybag: Please **[sign up](https://t1.gl/loyalty)** to be eligible for up to **HK$6,000** completion bonus. :moneybag::moneybag::moneybag: :mortar_board: This assessment awards an **Intermediate** level certificate. ::: The challenge is to implement an image gallery page with functionality similar to [lightbox](https://ashleydw.github.io/lightbox/), [lightbox2](http://lokeshdhakar.com/projects/lightbox2/) or [fancybox](http://fancybox.net/). It should be able to retrieve the data from public API of your choice, for example, one could use [flickr](https://www.flickr.com/services/api/). 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 1. Web Frontend (HTML structure, JavaScript code quality) 2. UX Design and Prototyping 3. Testing, CI/CD, and Site Reliability 4. Functionality 5. Communication Please find our submission and grading guidelines [here](https://t1.gl/review). Your priorities are: 1. Hit the deadline you assign yourself with all requirements met. 2. Produce beautiful and **maintainable** code. You may wish to spend a few moments thinking of how another developer may wish to extend your work. 3. Your code must be ready to be deployed to heroku.com without any issues ### Submission 1. You can find our grading guidelines at https://t1.gl/review. 2. Submit your assessment at https://t1.gl/submit-assessment. ### FAQ 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. How long should this take? ~ Most of the submissions were done within a week. --- Copyright (c) 2016-2020 Terminal 1 Limited.