A modern Angular application that helps you discover public holidays from countries around the world. Built with Angular 19 and Angular Material for a beautiful, responsive user experience.
- 🌍 Global Holiday Discovery: Browse public holidays from countries worldwide
- 🔍 Smart Search: Find countries quickly with autocomplete search functionality
- 📱 Year Navigation: Explore holidays for different years (current year ± 5 years)
- ⚡ Real-time Data: Fetches live holiday data from the Nager.Date API
- 🔄 Random Holiday Showcase: Discover interesting holidays from around the world
- Frontend Framework: Angular 19
- UI Library: Angular Material 19
- Language: TypeScript 5.7
- Styling: SCSS
- State Management: RxJS Observables
- Routing: Angular Router
- Forms: Angular Reactive Forms
- Linting: ESLint with Prettier
- Build Tool: Angular CLI
Clone the project
git clone https://link-to-projectGo to the project directory
cd my-projectInstall dependencies
npm installStart the server
npm run startOpen your browser
Navigate to http://localhost:4200 to view the application.
The application uses environment configuration files located in src/environments/:
export const environment = {
API_URL: 'https://date.nager.at/api/v3',
};export const environment = {
API_URL: 'https://date.nager.at/api/v3',
};The application integrates with the Nager.Date API to fetch holiday data.
GET https://date.nager.at/api/v3/AvailableCountriesReturns a list of all available countries with their country codes.
Response:
[
{
"countryCode": "US",
"name": "United States"
}
]GET https://date.nager.at/api/v3/PublicHolidays/{year}/{countryCode}Parameters:
year(number): The year to fetch holidays forcountryCode(string): ISO 3166-1 alpha-2 country code
Response:
[
{
"date": "2024-01-01",
"localName": "New Year's Day",
"name": "New Year's Day",
"countryCode": "US",
"fixed": true,
"global": true,
"counties": null,
"launchYear": null,
"types": ["Public"]
}
]GET https://date.nager.at/api/v3/NextPublicHolidaysWorldwideReturns upcoming public holidays from around the world.
interface Country {
countryCode: string;
name: string;
}interface Holiday {
date: string;
localName: string;
name: string;
countryCode: string;
fixed: boolean;
global: boolean;
counties: string[] | null;
launchYear: number | null;
types: string[];
}- Nager.Date API for providing comprehensive holiday data
- Angular Material team for the excellent UI components
- The Angular team for the amazing framework
Made with ❤️ using Angular