Logo Lanfrica

adnewdebebe/amharic-tutor-springboot-thymeleaf-gemini-ai

Domain:

natural language processingeducation

Record type:

software
Creator:
adn
Host:
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' …