Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
baa8efe
Adding DB interaction code
AlexandrKudrya Apr 5, 2025
f988ebb
Add README
Apr 5, 2025
649b33a
README v0.1
Apr 5, 2025
f308a6f
Add Trello link and DB scheme to README
Apr 5, 2025
f33235a
modified: README.md
Apr 5, 2025
a00fdd8
fixed Dockerfile
Apr 5, 2025
293578a
Merge pull request #4 from CEHPOC/structure
CEHPOC Apr 5, 2025
c30c420
Merge pull request #3 from CEHPOC/readme_file
CEHPOC Apr 5, 2025
7748992
feats: были добавлены новые состояния в машине состояний
belynotsasha Apr 6, 2025
03ab0e1
Merge pull request #7 from RuVl/feature/add_states
ILIADUDKIN Apr 6, 2025
a201bca
deleted .idea
dim8art Apr 6, 2025
4c4eb6f
feats: добавлен gitignore
belynotsasha Apr 6, 2025
00dcd07
feats: переименована finite state machine
belynotsasha Apr 6, 2025
b01c7a6
добавлен gitignore
belynotsasha Apr 6, 2025
887736d
feats: добавлен gitignore
belynotsasha Apr 6, 2025
ce1ea15
Merge pull request #10 from RuVl/features/handlers_dudkin
RuVl Apr 6, 2025
158e12b
added handler structure
dim8art Apr 6, 2025
27950e8
change register
dim8art Apr 6, 2025
cb30ea4
fix
dim8art Apr 6, 2025
0f4865a
added localiztion
dim8art Apr 6, 2025
6807c13
Merge pull request #12 from RuVl/feature/basic_handlers
RuVl Apr 6, 2025
f8792cc
bugfixes
dim8art Apr 6, 2025
ed178e0
Added new db models.
RuVl Apr 6, 2025
c687f8f
Merge pull request #13 from RuVl/feature/basic_handlers
RuVl Apr 6, 2025
b21ebd4
Merge branch 'dev' into feature/MW-10
RuVl Apr 6, 2025
91b7fd2
Merge pull request #14 from RuVl/feature/MW-10
RuVl Apr 6, 2025
4667b42
Add fluent
RuVl Apr 6, 2025
1e3ca3f
register handler
dim8art Apr 6, 2025
65bbf27
Change enums. Alembic migration is successful!
RuVl Apr 6, 2025
477f243
basic registration handlers
dim8art Apr 6, 2025
abaeef6
changes
dim8art Apr 6, 2025
07dcf17
change
dim8art Apr 6, 2025
05fe772
Merge pull request #16 from RuVl/feature/handlers/belyakov
RuVl Apr 6, 2025
954d298
Рабочая версия helping. Требуется согласование с register
belynotsasha Apr 6, 2025
c082f87
добавлены некоторые пустые handlers с заглушками
belynotsasha Apr 7, 2025
43e183b
registartion handlers created
dim8art Apr 7, 2025
1c645e9
Merge pull request #18 from RuVl/feature/handlers/belyakov
dim8art Apr 7, 2025
e253975
Merge branch 'dev' into feats/handlers_dudkin
ILIADUDKIN Apr 7, 2025
15aba3f
Merge pull request #19 from RuVl/feats/handlers_dudkin
ILIADUDKIN Apr 7, 2025
29f5145
добавлены некоторые пустые handlers с заглушками
belynotsasha Apr 7, 2025
bfc5298
code_scanner
dim8art Apr 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# IDE's folders
.idea/

# python local cache
**/__pycache__/

# Compiled files
**/*.mo

# alembic migrations
**/migrations/versions/
!**/migrations/versions/__init__.py

# All virtual enviroments
**/*venv/

# All .env files
config.toml
**/.env

# Logging files
*.log

# Test docker
test*.yaml
188 changes: 188 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
<!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 -->
<a id="readme-top"></a>
<!--
*** Thanks for checking out the Best-README-Template. If you have a suggestion
*** that would make this better, please fork the repo and create a pull request
*** or simply open an issue with the tag "enhancement".
*** Don't forget to give the project a star!
*** Thanks again! Now go create something AMAZING! :D
-->



<!-- PROJECT SHIELDS -->
<!--
*** I'm using markdown "reference style" links for readability.
*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).
*** See the bottom of this document for the declaration of the reference variables
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.
*** https://www.markdownguide.org/basic-syntax/#reference-style-links
-->
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT][license-shield]][license-url]



<!-- PROJECT LOGO -->
<br />
<div align="center">
<a href="https://github.com/RuVl/MatMex-Week">
<img src="images/logo.png" alt="Logo" width="80" height="80">
</a>

<h3 align="center">MatMex Week Bot</h3>

<p align="center">
Bot for mathmech week
<br />
<a href="https://github.com/RuVl/MatMex-Week"><strong>Explore the docs »</strong></a>
<br />
<br />
<a href="https://github.com/RuVl/MatMex-Week">View Demo</a>
&middot;
<a href="https://github.com/RuVl/MatMex-Week/issues/new?labels=bug&template=bug-report---.md">Report Bug</a>
&middot;
<a href="https://github.com/RuVl/MatMex-Week/issues/new?labels=enhancement&template=feature-request---.md">Request Feature</a>
</p>
</div>



<!-- TABLE OF CONTENTS -->
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#about-the-project">About The Project</a>
<ul>
<li><a href="#built-with">Built With</a></li>
</ul>
</li>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#installation">Installation</a></li>
</ul>
</li>
<li><a href="#Contributing">Contributing</a></li>
<li><a href="#license">License</a></li>
<li><a href="#contact">Contact</a></li>
</ol>
</details>



<!-- ABOUT THE PROJECT -->
## About The Project

Данный бот предназначен для недели Матмеха. В его функции входят регистрация новых участников недели, начисление валюты за участие в событиях, магазин мерча, администрирование пользователей.
Сам бот обернут в докер и сопровождается postgres и redis.
Trello: [https://trello.com/b/rDOuwQsR/matmex-week](https://trello.com/b/rDOuwQsR/matmex-week)
Схема базы данных: [https://dbdiagram.io/d/67f003894f7afba184640672](https://dbdiagram.io/d/67f003894f7afba184640672)
<p align="right">(<a href="#readme-top">back to top</a>)</p>



### Built With

* [![Python][Python.org]][Python-url]
* [![Docker][Docker.com]][Docker-url]
* [![Postgres][Postgres.org]][Postgres-url]
* [![Redis][Redis.io]][Redis-url]

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- GETTING STARTED -->
## Getting Started

How to launch bot

### Prerequisites

* docker [https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository](Instruction_for_Ubuntu)

### Installation

1. Clone the repo
```sh
git clone https://github.com/RuVl/MatMex-Week.git
```
2. Set environment variables

3. Run docker compose
```sh
docker compose up
```

<p align="right">(<a href="#readme-top">back to top</a>)</p>


<!-- CONTRIBUTING -->
## Contributing

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request to branch dev

<p align="right">(<a href="#readme-top">back to top</a>)</p>

### Top contributors:

<a href="https://github.com/RuVl/MatMex-Week/graphs/contributors">
<img src="https://contrib.rocks/image?repo=RuVl/MatMex-Week" alt="contrib.rocks image" />
</a>



<!-- LICENSE -->
## License

Distributed under the MIT. See `LICENSE` for more information.

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- CONTACT -->
## Contact

Project Link: [https://github.com/RuVl/MatMex-Week](https://github.com/RuVl/MatMex-Week)

Docker Hub: ...?

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[contributors-shield]: https://img.shields.io/github/contributors/RuVl/MatMex-Week.svg?style=for-the-badge
[contributors-url]: https://github.com/RuVl/MatMex-Week/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/RuVl/MatMex-Week.svg?style=for-the-badge
[forks-url]: https://github.com/RuVl/MatMex-Week/network/members
[stars-shield]: https://img.shields.io/github/stars/RuVl/MatMex-Week.svg?style=for-the-badge
[stars-url]: https://github.com/RuVl/MatMex-Week/stargazers
[issues-shield]: https://img.shields.io/github/issues/RuVl/MatMex-Week.svg?style=for-the-badge
[issues-url]: https://github.com/RuVl/MatMex-Week/issues
[license-shield]: https://img.shields.io/github/license/RuVl/MatMex-Week.svg?style=for-the-badge
[license-url]: https://github.com/RuVl/MatMex-Week/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username
[product-screenshot]: images/screenshot.png

[Python.org]: https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54
[Python-url]: https://python.org
[Docker.com]: https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white
[Docker-url]: https://docker.com
[Postgres.org]: https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white
[Postgres-url]: https://postgresql.org
[Redis.io]: https://img.shields.io/badge/redis-%23DD0031.svg?style=for-the-badge&logo=redis&logoColor=white
[Redis-url]: https://redis.io
30 changes: 18 additions & 12 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,33 @@ services:
context: ./telegram_bot
dockerfile: Dockerfile
restart: unless-stopped
env_file: telegram_bot/.env

redis:
image: redis:7.4.2
restart: unless-stopped
env_file: redis/.env
expose:
- "6379"
volumes:
- redis_volume:/data
env_file:
- postgres/.env
- redis/.env
depends_on:
- postgres

postgres:
image: postgres:17.4
restart: unless-stopped
env_file: postgres/.env
expose:
- "5432"
expose:
- 5432
volumes:
- postgres_volume:/var/lib/postgresql/data

redis:
image: redis:7.4.2
restart: unless-stopped
env_file: redis/.env
expose:
- 6379
volumes:
- redis_volume:/data

volumes:
redis_volume:
driver: local

postgres_volume:
driver: local
3 changes: 3 additions & 0 deletions postgres/.env → postgres/.env.dist
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
POSTGRES_DB=database
POSTGRES_USER=user
POSTGRES_PASSWORD=password

DOCKER_POSTGRES_HOST=localhost
DOCKER_POSTGRES_PORT=5432
4 changes: 4 additions & 0 deletions redis/.env.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
REDIS_DB=0

DOCKER_REDIS_HOST=redis
DOCKER_REDIS_PORT=6379
21 changes: 16 additions & 5 deletions telegram_bot/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
FROM python:3.12
LABEL authors="MatMex-Week"

WORKDIR /app
# Update packages
RUN apt-get update && apt-get upgrade -y

COPY requirements.txt .
# Set enviroment variables
ENV TZ Europe/Moscow
ENV PIP_ROOT_USER_ACTION=ignore

RUN pip3 -r requirements.txt
# Prepare project directory
CMD mkdir -p /usr/src/app/
WORKDIR /usr/src/app/

COPY run.py .
# Copy and install requirements
COPY ./requirements.txt ./
RUN pip3 install --no-cache-dir -r requirements.txt

CMD ["python3", "run.py"]
# Copy project to directory
COPY . ./

# Run api
ENTRYPOINT python3 run.py
Loading