This project is a recruitment task for Wizcode. I've decided to use Tailwind for styling and Recoil for fundamental state management. I've implemented the searching feature and favorites feature. The favorites feature uses local storage as an external DB to make it as simple as possible. I've also implemented some very basic unit tests.
__tests__ this directory contains all tests
common this directory contains utils, consts, ann commonly used functions
components this directory contains global components
hooks this directory contains React hooks
models this directory contains TypeScript models and enums
services this directory contains all external services and it's implementation
state this directory contains files related to store and state management
views this directory contains React components that are views/pages top root elements
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
This project uses some popular packages.
Here is the list:
- React
- TypeScript
- Recoil
- Axios
- Tailwind
- Prettier
- ESLint
As the app grows, I would add some router solution to manage the app routes. I would also consider adding storybook to manage components and make it easier to collaborate with designers. For sure I would add some more tests.