An Ethiopian Amharic language tutorial application built with Java, Spring Boot, Thymeleaf, and the Google Gemini LLM. Features IPA-backed (International Phonetic Alphabet) pronunciation, syllable breakdowns, and an easy to use interface.
# Ethiopian Amharic Tutor 🇪🇹
Developed by Adnew Debebe
View a live version of the running app by selecting the link below:
- Amharic Tutor Web App
A Spring Boot web app that teaches the Ethiopian Amharic alphabet, common phrases, and Ethiopian cultural facts.
Built with Spring MVC/Thymeleaf and powered by Gemini LLM for intelligent explanations. Designed for local use and cultural education.
In addition, the app can be accessed via API (Spring REST) calls from a tool like Postman.
## H2 Database
The app also uses Hibernate/JPA and an H2 in-memory database, for local storage and retrieval of phrases, facts and the Amharic alphabet.
The data for the database tables can be found in the (src/main/resources/data.sql) file.
- H2 Database Console:
localhost
- JDBC URL: jdbc:h2:mem:testdb
- User Name: sa
- Password: [leave blank]
## Features
- Ethiopian Amharic Alphabet (ፊደላት)
- Common Phrases
- Ethiopian Facts
- Gemini-powered Q&A
## HTTP Endpoints
## These endpoints serve HTML pages rendered via Thymeleaf and Spring MVC:
1) Home page with intro and navigation (index.html):
- `http//loclhost:8080/`
2) Displays Amharic letters + pronunciation (alphabet.html):
- `http//loclhost:8080/alphabet`
3) Displays common phrases with translations (phrases.html):
- `http//loclhost:8080/phrases`
4) Displays Ethiopian cultural/historical facts (facts.html)
- `http//loclhost:8080/facts`
5) Displays Google Gemini-powered LLM Q&A about Ethiopia or the Amharic language (ask.html):
- `http//loclhost:8080/ask`
## API Endpoints via Spring REST
## These endpoints return JSON responses for frontend apps and clients (i.e, Postman)
1) Ask a question (Gemini-powered)
- GET '/api/ask?question=How do you say hello in Amharic?'
- Returns a JSON object from Gemini based on the input question.
- Response:
- {
"question": "How do you say hello in Amharic?",
"answer": "Selam (IPA: sɛlam)"
}
2) Get alphabet (Amharic letters + pronunciation)
- GET '/api/alphabet' …