The goal is to build a multi-page application form for tenants registering with a property management company to book apartments. The form should include fields for full name, email, phone number, and salary indication with radio buttons. It should feature a progress indicator and a summary of all entered data on the last page. Stretch goals include animations, responsive design, neat design, state storage, and automated tests.
This project is a frontend application built with Next.js, TypeScript, and Tailwind CSS. It includes a multi-page form with animations and validation. The project uses Zustand for state management and Framer Motion for animations.
Ensure you have the following installed on your development machine:
Clone the repository and install the dependencies:
git clone https://github.com/Pascha-404/buena-frontend-challenge.git
cd buena-frontend-challenge
npm install
To start the development server, run:
npm run dev
This will start the Next.js development server on http://localhost:3000
.
To run the tests, use:
npm run test
To run the tests in watch mode:
npm run test:watch
The project uses Jest and React Testing Library for unit and integration tests. Tests are located for each component in the associated components directory.
ProgressBar Component
TenantForm Component
TenantFormPage Component
The project uses Framer Motion to add animations to the form pages. The `AnimatePresence` and `motion` components are used to animate the mounting and unmounting of form pages.
This project is licensed under the MIT License.