Let's get all your NPM Packages 🔥
Live Demo: https://npm.edwingrier.com
- Does it work?
- Does the implementation handle loading and error states?
- Styling should be consistent and make use of best practices.
- Proper-use of life-cycle events and handlers.
- Clean, well-commented code.
Steps I thought of and executed for solving the get NPM packages tool:
- App contains two child components: search.js and results.js
- I created a services file in my Utils folder that contains the GET fetch api call syntax and imported it into my app wherever I needed it.
- I added the tag Chips and made them open a new search with the tag that was clicked.
- Added the score bars for quality, maintenancy and popularity using the Progress component in Material-UI.
- Loader is also Progress spinner from Material-UI.
- Material-UI and material-ui/icons was used for components.
- Written in js with some ES6+ syntax.
- Used realfavicongenerator.com for favicon.
Run the following commands to setup, given git
and npm
is available:
- git clone project
- npm install project
- npm start
- I really wanted to write full tests for this project, but time did not permit. I will be adding them in the future.
- There are places to improve. I Invite any feedback. As software engineers we strive to improve and learn every day.
- My responsive design and media queries need work.
- Adding snackbar component for user feedback is a UX must, rather than use the ugly Alert method.
This is a coding challenge and scope is quite small. If it was a bigger project, doing the following would be better:
- More focus on architecture and software design would be necesssary. Better project folder and component structure.
- Choosing typescript would be better (especially with multiple developers on team).
- Using Redux state management.
- If I had more time I would add better error handling and responsive design with media queries.
- I really wanted to add a dark mode theme using the makeStyles theme hook but I totally ran out of time, will impliment in the future probably.
- For a team project, it will be good to have the project dockerized.
Fun project!!