This project was bootstrapped with Create React App.
This project was made to work with the JumpCloud local server on the assignment Github page.
In the project directory, you can run:
This will include the necessary dependencies. Then you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
Project features include:
- A list of current users
- Adding a new user
- Updating an existing user
- Deleting single or multiple users at a time
- Notifications on success/failure of user operations
- Ability to navigate app with keyboard only for accessibility
- Responsive layout that will fit most screen sizes
- Basic UI testing
The app is built using the following tech stack:
- React as a front-end "framework".
- Material-UI as a component library.
- Styled-Components as a styling utility.
- Jest as a testing framework.
- Enzyme as a testing utility.
The app is a single-page app. I started out with a quick wireframe to plan layout and features that would make a good experience and UI.
The minimum viable product was achieved with inclusion of custom styles, responsiveness, general testing and some additional notifications for user feedback.
As can be seen in the wireframes, there are a few features that could not be included due to time constraints. Potential enhancements that would further improve the app include:
- A user name search that filters the list
- A select all
- A list sort by user name
- Notifications with more descriptive messages
- User create/edit form validation
There is a warning in the development console that appears due to Material-UI's dialog component. It is a known bug from the Material-UI library and is currently open.