Git Product home page Git Product logo

tralebot's People

Contributors

ap-konovalov avatar undermove avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

tralebot's Issues

[NFR] Remove Startup.cs

Project made with .NET 7.0 but still has Startup.cs class that is deprecated. This part requires deletion

Add achievements system

Count stats After each of actions:
Add new word,
Start new quiz,
Complete quiz

And give achievements to user:

  1. Every day vocabularing – add at least one word per day – series
  2. Every day quizing – complete one quiz per day – series
  3. 10 words in vocabulary – add 10 words into your vocabulary
  4. 100 words in vocabulary
  5. 1000 words in vocabulary
  6. 1 quiz – complete first quiz
  7. 100% – complete quiz at 100% rate with 10 words at least
  8. Solver – complete quiz at 100% rate with 30 words that not older than one week in your vocabulary
  9. Im here only to translate. – Translate and not add translation to vocabulary.
  10. 10 gold medals – 10 words that consolidated in quizzes
  11. 100 gold medals – 100 words that consolidated in quizzes
  12. 1000 gold medals – 100 words that consolidated in quizzes

[INFRA] Create VPN for connection between database and local computer

Now we have opened port of database that sticks out to the Internet. This is unsafe because any evil person could try to bruteforce it. So in this case he can't do anything but make me sad. But this is not good too&

That is why we need to have safe encrypted VPN between developing computer and test or production database. Also it might be useuful in future when database would have beeb moved out to other server

Add feature with addition of custom translation variant in case when user wants it

After series of experiments i decided that functionality will looks like this:

  1. User enters word
  2. Translator can't translate it
  3. User gets message with button "Ввести вручную"
  4. User clicks this button and get message
    "Чтобы добавить слово со своим переводом, отправь мне его в формате слово - перевод, к примеру cat - кошка"
  5. Than user gets message that word added to vocabulary

Add share quiz function

  1. After quiz start create new entity with vocabulary entries ids.
  2. Create quiz with variants or translation to choose
  3. Create button. Share quiz with InlineKeyboardButtonWithUrl.
  4. User can share message with start quiz button

Add more quiz types

Three options:
last week words - free
last day - payed
10 random words - payed
most failed words - payed

[INFRA] Setup Reverse Proxy with nginx

We need more sercure and flexible infrastructure. Reverse proxy technic is one of wich can serve both of this requirements.

After task completion all server left only three ports that opened for comunication with other world: port 80 for nginx and 223 for ssh and one port for VPN.

For potential attackers it closes two potential vulnarabilities:

  1. Bruteforse attack for database password guessing. It wiil be covered because database port will be closed for internet.
  2. DDoS attack. Because it will be covered by internal mechanisms of ngnix.

Also this solution opens ability to manage resources between different apps

Add translation examples

Need to add examples of translated word or phrase:

For example
Input: Contingency

Output:
Определение: непредвиденное обстоятельство
Другие значения: непредвиденное обстоятельство, случай, случайность

Пример использования:
In making our business plans, we tried to prepare for any contingency that might hurt sales.
При составлении бизнес-планов мы пытались подготовиться к любым случайностям, которые могли бы повредить продажам.

Learn vocabulary to work with multiple languages

Currently:
Tap to Open Vocabulary button
Shows all entries by all languages count but shows only current language entries

Desired:
Show two buttons with current languages vocabulary counters by each Language, after tap show vocabulary for selected language.

Another variant: suggest switch language after current language vocabulary been shown

Setup alerting to telegram if service fails

Today our balance became to end and this cause fail of TraleBot.

command /help doesnt work so users cant understand how to report about problem. So do I.

That is why i suggest two features –

  1. Somehow set up alerting about service disfuction& Perhaps it whould be better to do it with grafana alerts somehow
  2. And second – add info about support_chat to bot description

[INFRA] Create production database

Now we have only test database for both environments. We want start to deliver bot to our customers so that is why we need production database

Add Examples to quiz function

After addition of translation examples to translation function need to update quiz function with suggestion of translation example in quiz question:

Example
Переведи слово: сontingency
Пример использования: In making our business plans, we tried to prepare for any contingency that might hurt sales.

In case when word did not contain examples -- show nothing
Example
Переведи слово: сontingency

[INFRA] Add docker-compose up for bot and database and prometheus to initd

Currently docker-compose up used to be starder only from deploy script. But when server restarts (for example for payment debts) its doesnt wake up its containers. I know that in linux there is an initd file or somethind that can maintain automatic start on wake up functionality

need to start automatically:
tralebot
database
prometheus

Define language by input string.

Current: User current language is Georgian. User make input with English language. Receives error.
Desired: receives translation

Add quiz with answer variants

How it should works:

  • We have vocabulary:
    cat -кошка
    dog - собака
    верблюд - camel

Click on button "Закрепить слова"
Quiz started, with next questions:

  1. Переведи слово: cat
    Choose: кошка, собака, верблюд, святой источник
  2. Переведи слово dog
    ...
  3. Переведи слово: camel
    ...
  4. Переведи слово кошка:
    cat, camel, dog, integral equation
  5. Переведи слово собака:
    ...
  6. Переведи слово верблюд:
    ...
  7. Переведи слово cat:
    введи вариант перевода
  8. Переведи слово dog:
    введи вариант перевода:
  9. Переведи слово camel:
    введи вариант перевода
  10. Переведи слово кошка:
    введи вариант перевода
  11. Переведи слово собака:
    введи вариант перевода
  12. Переведи слово верблюд
    введи вариант перевода

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.