The project should run exactly the same as the code provided, npm install
and npm start
will do.
I have completed the code challenge the best I could. However, I would like you to take in consideration that I've only invested two days of work on it. There is so much that can be done and I never know when to stop, this is the reason I decided to give myself a deadline and complete as much as I could within that time frame. Hope this is enough to demonstrate what I am capable of doing.
I have left comments in some parts of the code where I would have done things differently for a real project. However, I
would like to mention other things I would have done differently. To begin with, I would have used
create-react-app
as a boiler plate and ejected
when/if needed later on the project. Also, I didn't mind much cause
I was working alone but things that are mandatory in all my projects are ESlint
and Prettier
at the very least, husky
or any pre-commit tool and a branching system (git-flow
).
As I didn't have requirements, neither designs for this project, I couldn't plan it properly before starting; so I pretty
much started coding right away. This is the reason why the CSS could be much improved. I would always create a styleguide from
the designs before start putting all together, and ideally something like story-books
in place to avoid any duplication
or styles misalignment.
Also, I didn't create any tests for the code. Cause of the time frame, the simplicity of the code and also the fact that I'm using typescript, I decided to sacrifice them.
Finally, I've used Chrome to develop the application, where it works as expected. Tested it on Firefox and Safari, where (in Safari only of course) I could see some minor design bugs that need a bit of work, but as it is only a code challenge I didn't worry much about it.
Please let me know any questions.
Thank you for your interest in EnjoyHQ. This coding challenge consists of two parts. We don't like puzzles and tricky questions, so we based all tasks on real-life problems we had to solve when building EnjoyHQ.
You should use React, Redux when needed and vanilla CSS (no bootstrap). Typescript is not mandatory so it's up to you to decide to use it or not.
Please don't make use of any other libraries or frameworks beside React and Redux (libraries, addons, and tools related to Redux are allowed ie: redux-logger).
We've added some very basic CSS theme. Feel free to use/modify or implement your own theme.
Once your solution is complete, please make sure to:
- document how to get everything running
- zip the whole project directory, including
.git
, we're curious about your commit history - email it to us
If you have doubts or something is not clear - do not hesitate to ask!
We have prepared a basic FE boilerplate, that will compile Typescript if needed. Feel free to use/modify it and implement on top of it.
After npm install
just run npm start
to run the app. You can access WebPack's dev server at
Consume The Guardian API to build a simple news SPA. Users should be able to:
- Search news and navigate through pages
- Filter news by date and optionally by section
- Sort news by: newest, oldest or relevance
Each news item must contain: title, date, section name, thumbnail and anything else you think it would be usefull for users.
We also want to be able to store a user's previous searches (it should include selected query and filters) and display them in our application.
Good luck!