This is a solution to the Age calculator app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Users should be able to:
- View an age in years, months, and days after submitting a valid date through the form
- Receive validation errors if:
- Any field is empty when the form is submitted
- The day number is not between 1-31
- The month number is not between 1-12
- The year is in the future
- The date is invalid e.g. 31/04/1991 (there are 30 days in April)
- View the optimal layout for the interface depending on their device's screen size
- See hover and focus states for all interactive elements on the page
- Bonus: See the age numbers animate to their final number when the form is submitted
- Solution URL: https://github.com/Jschles1/age-calculator
- Live Site URL: https://age-calculator-tan.vercel.app/
- Semantic HTML5 markup
- TailwindCSS
- Mobile-first workflow
- React - JS library
- Next.js - React framework
- Shadcn UI - Component library
- React Hook Form - Form handling and validation
- Zod - Generates typescript schemas for form validation
- ChatGPT - Provided logic for age calculation
This was the first time I used zod in conjunction with the react-hook-form package for form validation. It provided a good way to create a validation schema using typescript types.
My main goal with this solution was to complete an MVP as fast as possible while maintaining a pixel perfect approach to the provided design. For that reason I skipped the bonus requirement for adding animation to the age calculation numbers. I would like to focus on that more in future challenges.
- Website - John Schlesinger
- Frontend Mentor - @Jschles1
- ChatGPT for providing age calculation logic.