Telegram bot that allows you to generate, manage, associate passwords and save your associations. Passwords are stored in the database in encrypted form
Note
Tip
/start - start bot
/help - display the list of available commands
/generate - start generating a new password
/associate - associate word with your password
/change - change password to your association
/del - delete your association
/del_all - delete all your associations
/my - print your associations
- Python
- aiogram 3.22
- pytest
- aiosqlite
- cryptography
- SQLite
Bot is written using a clean architecture
- Handlers
- Commands and Messages
- Repo
Tree of Dirs/Files
├── app
│ ├── app.py
│ ├── commands
│ │ ├── association
│ │ │ ├── adder.py
│ │ │ ├── association.py
│ │ │ ├── changer.py
│ │ │ ├── deleter.py
│ │ │ ├── __init__.py
│ │ │ └── printer.py
│ │ ├── commands.py
│ │ ├── default
│ │ │ ├── helper.py
│ │ │ ├── __init__.py
│ │ │ └── starter.py
│ │ ├── __init__.py
│ │ └── password
│ │ ├── __init__.py
│ │ └── password.py
│ ├── errors
│ │ ├── errors.py
│ │ └── __init__.py
│ ├── handlers
│ │ ├── association
│ │ │ ├── adder.py
│ │ │ ├── association.py
│ │ │ ├── changer.py
│ │ │ ├── deleter.py
│ │ │ ├── __init__.py
│ │ │ └── printer.py
│ │ ├── default
│ │ │ ├── help.py
│ │ │ ├── __init__.py
│ │ │ └── start.py
│ │ ├── handler.py
│ │ ├── __init__.py
│ │ ├── message
│ │ │ ├── __init__.py
│ │ │ └── message.py
│ │ ├── password
│ │ │ ├── __init__.py
│ │ │ └── password.py
│ │ └── registrator
│ │ ├── association
│ │ │ ├── adder.py
│ │ │ ├── association.py
│ │ │ ├── changer.py
│ │ │ ├── deleter.py
│ │ │ ├── __init__.py
│ │ │ └── printer.py
│ │ ├── default
│ │ │ ├── default.py
│ │ │ └── __init__.py
│ │ ├── __init__.py
│ │ ├── message
│ │ │ ├── __init__.py
│ │ │ └── message.py
│ │ ├── password
│ │ │ ├── __init__.py
│ │ │ └── password.py
│ │ └── registrator.py
│ ├── __init__.py
│ ├── message
│ │ ├── __init__.py
│ │ └── message.py
│ ├── password
│ │ ├── generator.py
│ │ └── __init__.py
│ ├── repo
│ │ ├── __init__.py
│ │ ├── query
│ │ │ ├── common
│ │ │ │ ├── common.py
│ │ │ │ └── __init__.py
│ │ │ ├── __init__.py
│ │ │ ├── password
│ │ │ │ ├── __init__.py
│ │ │ │ └── password.py
│ │ │ └── user
│ │ │ ├── __init__.py
│ │ │ └── user.py
│ │ ├── repo.py
│ │ └── tables.py
│ └── state
│ ├── __init__.py
│ └── state.py
├── config
│ ├── config.py
│ └── __init__.py
├── Dockerfile
├── LICENSE
├── logger
│ ├── __init__.py
│ └── logger.py
├── main.py
├── migrations
│ ├── 1_create_tables.up.sql
│ ├── 1_drop_tables.down.sql
│ ├── __init__.py
│ └── migrator.py
├── passwords.db
├── README.md
├── requirements.txt
├── test.db
├── tests
│ ├── converter
│ │ ├── fixture.py
│ │ ├── __init__.py
│ │ └── test_converter.py
│ ├── encrypter
│ │ ├── fixture.py
│ │ ├── __init__.py
│ │ └── test_encrypter.py
│ ├── generator
│ │ ├── fixture.py
│ │ ├── __init__.py
│ │ └── test_generator.py
│ ├── __init__.py
│ ├── parser
│ │ ├── fixture.py
│ │ ├── __init__.py
│ │ └── test_parser.py
│ ├── repo
│ │ ├── fixture.py
│ │ ├── __init__.py
│ │ └── test_repo.py
│ └── respondent
│ ├── fixture.py
│ ├── __init__.py
│ └── test_respondent.py
└── utils
├── converter.py
├── encrypter.py
├── __init__.py
├── parser.py
└── respondent.py