Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pjaskulski/lidi

lidi - a little English-Polish dictionary, MySQL database + Redis + REST API server (Go) + command-line client in Golang (with text to speech thanks to Google API) + desktop client (Go + Fyne toolkit) + docker
https://github.com/pjaskulski/lidi

docker-compose fyne fyneapp go golang htgo-tts mysql-database redis-cache rest-api

Last synced: about 2 months ago
JSON representation

lidi - a little English-Polish dictionary, MySQL database + Redis + REST API server (Go) + command-line client in Golang (with text to speech thanks to Google API) + desktop client (Go + Fyne toolkit) + docker

Awesome Lists containing this project

README

        

# lidi
lidi - a little English-Polish dictionary, MySQL database + Redis + REST API server (Go) + command-line client in Golang (with text to speech thanks to Google API) + desktop client (Go, fyne).

MySQL database definition + English-Polish dictionary, 10000 words:
`./database/database.sql`

**Docker:**

```
1. docker-compose up
2. go build -o lidi-client ./cmd/client
3. ./lidi-client en house
4. ./lidi-desktop
```

**Or:**

Server:

Setup MySQL manually, database.sql file contains the table definition and data.
install Redis.

`go build -o lidi-server ./cmd/web`

```
Usage of ./lidi-server:
-addr string
HTTP network address (default ":8080")
-dsn string
MySQL data source name (default "web:pass@/dictionary")
```

Client:
`go build -o lidi-client ./cmd/client`

```
Usage:
lidi-client [en|pl|speak|add|update|delete]

Subcommands:
en Translate from English to Polish
pl Translate from Polish to English
speak Say in English (Google API is used)
add Add new item to dictionary (English=Polish) returns ID
update Update item in dictionary (ID English=Polish)
delete Delete item in dictionary (English=Polish)

Flags:
--version Displays the program version string.
-h --help Displays help with available flag, subcommand, and positional value parameters.
-s --server Dictionary server address (default: http://localhost:8080)
-p --speak Speak English after translate (en|pl commands)
-i --id show record id

Example:
1. Server start: ./lidi-server
2. Client query: ./lidi-client en house -p
./lidi-client add tree=drzefo
./lidi-client update 16354 tree=drzewo
./lidi-client delete 16354
```
Note: speak command (and -p flag) use [htgo-tts](https://github.com/hegedustibor/htgo-tts) lib,
htgo-tts needs mplayer.

![Screen](/lidi-client.png)

Desktop:
`go build -o lidi-desktop ./cmd/desktop`

![Screen](/lidi-desktop.png)

Note: server, client and desktop tested on Linux only.

English word list: [The BNC/COCA headword lists](https://www.wgtn.ac.nz/lals/resources/paul-nations-resources/vocabulary-lists).
Translation: Google Translate, printed dictionaries, memory.