Salesforce LWC app for decoding South African ID numbers and finding public holidays for the birth year.
# Birth Date Holidays
Birth Date Holidays is a Salesforce application that allows users to enter a South African ID number, validate and decode it, track how often the ID number is searched, and display South African public holidays for the decoded birth year.
The application highlights any public holiday that matches the user’s date of birth and moves that matching holiday to the top of the holiday list.
---
## Project Description
The goal of this project is to allow an end user to check whether their date of birth falls on a South African public holiday.
The app uses a South African ID number to decode the user’s date of birth, gender, and citizenship status. Valid ID searches are stored in Salesforce, and repeated searches for the same ID number increment a search counter.
Public holidays are retrieved from the Calendarific API using the decoded birth year and South Africa country code.
---
## Features
* South African ID number input page.
* ID number validation before search submission.
* Search button disabled until a valid ID number is entered.
* Invalid ID number prompt/message.
* ID number decoding into:
* Date of Birth
* Gender
* SA Citizen status
* Valid ID searches stored in Salesforce.
* Search counter incremented for repeated ID number searches.
* Calendarific API integration.
* Public holidays retrieved for the decoded birth year.
* Matching birthdate holiday highlighted and moved to the top.
* Apex test coverage for service, controller, HTTP client, and API mock classes.
---
## What Was Implemented
### Birthdate Holiday Search Page
A Lightning Web Component was created to allow users to enter a South African ID number and submit a search.
Implemented:
* Lightning Web Component page.
* South African ID number input field.
* Description section explaining the purpose of the page.
* Search button.
* Search button state controlled by ID number validity.
---
### South African ID Number Validation and Decoding
The application validates t …