React.js, Redux, Functional components, Class components, Authentication with firebase, Form validation