A comprehensive TypeScript library providing information and utilities related to Bangladesh, including geographical data, national holidays, prayer times, currency exchange rates, and more.
- Geographical Data: Access divisions, districts, upazillas, and unions of Bangladesh with Bengali names and coordinates.
- Country Information: Detailed facts about Bangladesh including history, culture, and landmarks.
- National Holidays: List of official holidays with dates and descriptions.
- Currency Rates: Fetch real-time currency exchange rates.
- Prayer Times: Get Islamic prayer times for cities in Bangladesh.
- Weather Data: Current weather, forecasts, and weather by coordinates.
- Postal Codes: Complete postal code database for major areas.
- Healthcare Facilities: Database of hospitals, clinics, and medical colleges.
- Utility Functions: Distance calculations, coordinate validation, and search utilities.
- Type-Safe: Fully typed with TypeScript for better developer experience.
npm install matribhumiimport { getDivision, getDistrictsOfDivision, getDistrict } from 'matribhumi';
// Get a division by name
const dhakaDivision = getDivision('Dhaka');
console.log(dhakaDivision.name); // 'Dhaka'
// Get all districts in a division
const dhakaDistricts = getDistrictsOfDivision('Dhaka');
console.log(dhakaDistricts.length); // Number of districts in Dhaka division
// Get a specific district
const gazipurDistrict = getDistrict('Gazipur');
console.log(gazipurDistrict.bn_name); // 'গাজীপুর'import { getHoliday } from 'matribhumi';
const holidays = getHoliday();
console.log(holidays[0].name); // Name of the first holidayimport { getPrayerByCity } from 'matribhumi';
// Get prayer times for Dhaka today
const prayerTimes = await getPrayerByCity();
console.log(prayerTimes.data.timings.Fajr); // Fajr prayer time
// Get prayer times for a specific date and city
const specificPrayerTimes = await getPrayerByCity('15-08-2023', 'Chittagong');import { currencyRate } from 'matribhumi';
// Get USD to BDT exchange rate
const usdRate = await currencyRate('usd');
console.log(usdRate.rate); // Exchange rateimport { setWeatherApiKey, getCurrentWeather, getWeatherForecast } from 'matribhumi';
// Set your OpenWeatherMap API key
setWeatherApiKey('your-api-key-here');
// Get current weather for Dhaka
const weather = await getCurrentWeather('Dhaka');
console.log(`Temperature: ${weather.temperature.current}°C`);
// Get 5-day forecast
const forecast = await getWeatherForecast('Dhaka');
console.log(forecast.forecasts[0].weather.main);import { getPostalCodeInfo, getPostalCodesByDistrict } from 'matribhumi';
// Get info for a specific postal code
const postalInfo = getPostalCodeInfo('1000');
console.log(postalInfo?.area); // 'Dhaka GPO'
// Get all postal codes in Dhaka district
const dhakaCodes = getPostalCodesByDistrict('Dhaka');
console.log(dhakaCodes.length);import { getHealthcareFacilitiesByDistrict, getEmergencyFacilities } from 'matribhumi';
// Get hospitals in Dhaka
const dhakaHospitals = getHealthcareFacilitiesByDistrict('Dhaka');
console.log(dhakaHospitals[0].name);
// Get facilities with emergency services
const emergencyFacilities = getEmergencyFacilities();
console.log(emergencyFacilities.length);import { calculateDistance, findNearestDistricts, searchDistricts } from 'matribhumi';
// Calculate distance between two points
const distance = calculateDistance(23.8103, 90.4125, 22.3569, 91.7832);
console.log(`Distance: ${distance} km`);
// Find nearest districts to a coordinate
const nearest = findNearestDistricts(23.8103, 90.4125, 3);
console.log(nearest[0].name);
// Search districts by name
const searchResults = searchDistricts('Dhaka');
console.log(searchResults.length);Gets a division by name (English or Bengali).
Gets a district by name (English or Bengali).
Gets an upazilla by name (English or Bengali).
Gets a union by name (English or Bengali).
Gets all districts in a division.
Gets all upazillas in a district.
Gets all unions in an upazilla.
Gets the list of national holidays in Bangladesh.
Gets prayer times with customizable parameters.
Gets prayer times for a specific city and date.
Gets currency exchange rate for a given currency symbol against BDT.
Sets the OpenWeatherMap API key for weather services.
Gets current weather data for a city in Bangladesh.
Gets 5-day weather forecast for a city in Bangladesh.
Gets weather data by geographic coordinates.
Gets postal code information by postal code.
Gets all postal codes for a specific district.
Gets all postal codes for a specific division.
Searches postal codes by area name.
Validates if a postal code exists.
Gets all healthcare facilities.
Gets healthcare facilities by district.
Gets healthcare facilities by division.
Gets healthcare facilities by type.
Gets facilities with emergency services.
Calculates distance between two geographic points in kilometers.
Finds nearest districts to a coordinate.
Searches districts by name.
Gets districts within a specified radius.
Validates if coordinates are within Bangladesh bounds.
The library exports comprehensive TypeScript types for all data structures. Import them as needed:
import type {
Division, District, Holiday, PrayerTimes, CurrencyData,
WeatherData, WeatherForecast, PostalCode, HealthcareFacility
} from 'matribhumi';We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Clone the repository
git clone https://github.com/your-username/matribhumi.git
cd matribhumi
# Install dependencies
npm install
# Run tests
npm test
# Build the project
npm run build
# Lint the code
npm run lint
# Format the code
npm run formatThis project is licensed under the ISC License - see the LICENSE file for details.
Anis Afifi
If you find this library helpful, please give it a ⭐ on GitHub! j:\matribhumi\README.md