# Amharic Phrase Book
A free, offline-friendly Amharic phrasebook web app for travelers and learners.
# Preview
.
# Live Deployment
[
amharic-phrase-book.vercel.…
]
## Tech Stack
- **React** (with functional components and hooks)
- **TypeScript**
- **Tailwind CSS** (for styling)
- **Create React App**
- **Service Worker** (for offline/PWA support)
- **Static JSON** (for phrase data, served from the `public` folder)
- **SVG Icons** (inline for social and UI icons)
## Features
- Browse 670+ essential Amharic phrases in 17 topics
- Search phrases by Amharic, English, or notes
- Category cards with unique placeholder background images
- Responsive, paginated category grid
- Phrase lists with "Scroll to Top" button for long lists
- Social links for Facebook, Twitter, and GitHub
- Works offline (static JSON data in `public/amharic_phrases.json`)
- No user tracking, no ads
## Recent Changes
- **Service Worker / Offline Support:**
The app now registers a service worker (`serviceWorkerRegistration.ts`) for offline/PWA support. Your static assets and phrase data are cached for offline use.
- **Category Card Images:**
Each category card displays a unique placeholder background image based on its category. The "Basic" category uses a custom image from `public/images/basic.png`. Other categories use color-coded placeholders.
- **Scroll to Top:**
A floating "Scroll to Top" button appears on long phrase lists (more than 8 phrases), allowing users to quickly return to the top.
- **Social Links:**
The Instagram link in the footer has been replaced with a GitHub link and icon.
- **Error Handling:**
Improved error handling for missing or malformed data and images.
- **TypeScript Improvements:**
Defensive coding for undefined fields and improved type safety.
- **SVG Icons:**
All SVG icons are now valid and accessible.
## Usage
1. Clone the repository.
2. Run `npm install`.
3. Run `npm start` to launch the app locally.
4. To add or update phrases, edit `public/amhari …