This is a project showcasing React Hooks. It is a simple form application, and uses reqres.in to simulate web service calls. The application allows a user to view and edit a profile page.
The objective of this application is to allow a user to view and edit a single user record. This is displayed as a "profile", since the objective matches the general description of a website's profile or account page. Users should be required to enter a first name, last name, phone number, address, and date of birth. Additional optional fields are also supported.
This is a small application, and does not include any state management libraries. In the interest of separating concerns, a stateful service module performs all API requests.
React Hooks are used instead of Class components for lifecycle management purely for practice and evaluation of Hooks for future use.
The Semantic UI library is used to set the look and feel of the application. This allows the application to look and feel clean and modern, without writing much app-specific CSS (which would be outside of the app's main objective).
Due to time constraints, testing and form validation are both rather rudimentary. Were time not an issue, using a field validation library to enforce constraints and format values as the user types would be ideal.
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.
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 hashes.
Continuous Integration and Deployment have been set up using Travis CI. To trigger a build and deploy, simply push your code to the develop
branch. Code committed to other branches will be built but not deployed, to ensure that code will not break the application prior to merging into develop
.