Skip to content

Application for querying top articles from https://golangweekly.com/, translating them to Ukrainian and sending to the telegram channel

License

Notifications You must be signed in to change notification settings

hrvadl/goweekly

Repository files navigation

Go weekly 🤓

Quick start 🚀

Run app 😬

Make sure you have docker & docker compose tools installed. Then, copy contents of .env.example to .env and populate it with values. Finally, in the root of the directory run:

docker compose up

Architecture

App consists of 4 microservices:

  1. Crawler - is responsible for obtaining articles and publishing them to the RabbitMQ. Should be run as a cron/scheduled job (to be done).
  2. Core - core service, responsible for listening to RabbitMQ queue and calling other services.
  3. Translator - service, used for translation. Uses lingva under the hood.
  4. Sender - service, used to distribute translated messages to Telegram channel.

Local software development 👷🏻

Code quality 💅🏻

Make sure you have pre-commit installed and added to your $PATH. Then run following command from the root of the repo:

pre-commit install

Now, you must install golangci-lint and include it to your path as well.

Congrats, now pre-commit will run before your commits. Also, in case you're using VSCode linting on save should be integrated into your editor.

What's the purpose? 🥸

I like Go and I like reading tech articles. I appreciate work from admins of go-weekly website. But, I don't like to be notified about fresh weekly digest by mail. I'd like receive weekly digest directly in the telegram, because ... Because, why not? Also, I'd like to contribute to the Ukrainian golang community and make summaries translated to ukrainian language. 🇺🇦

Contributors 🏋🏻

TODO

  1. Run Crawler as a Cron job in Kubernetes
  2. Add grpc logger & other useful interceptors
  3. Add Helm chart?
  4. Deploy it somewhere?
  5. Add graceful shutdowns

About

Application for querying top articles from https://golangweekly.com/, translating them to Ukrainian and sending to the telegram channel

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published