Проект был реализован по ТЗ - https://github.com/zhukovsd/java-backend-learning-course/blob/main/Projects/TennisScoreboard/index.md
Python версия ТЗ - https://github.com/zhukovsd/python-backend-learning-course/blob/main/Projects/TennisScoreboard/index.md
- Python3
- uwsgi: В качестве Веб сервера
- dotenv: Для переменных окружения
- pytest: Тестирование
- VDS Linux Ubuntu
- Docker и Docker-Compose: для развертывания и деплоя
- Jinja2: в качестве Шаблонизатора
- HTML and CSS: для оформления
- alembic: для миграций
- sqlalchemy: ORM для манипуляций с БД
- MySQL: в качестве базы данных
- Архитектурный паттерн MVCS
Основная идея проекта - создать клиент-серверное приложение для подсчета очков в теннисе.
- Получение практического опыта с html & css без использования фреймворков
- Попрактиковаться с шаблонизатором
- Поработать с инструментами тестирования
- Познакомиться с архитектурным паттерном MVCS
- Познакомиться и получить практический опыт работы с ORM и миграциями
- Закрепить предыдущий и получить опыт новый опыт при работе и настройке с веб-сервером WSGI
Содержит две кнопки
- Страница нового матча
- Список сыгранных матчей
После нажатия на кнопку начала нового матча вы попадаете на страницу создания нового матча для подсчета.
Затем после ввода имен игроков переходите на страницу подсчета матча которая отображает реализованную логику приложения.
И по окончанию матча добавляет результаты в таблицу сыгранных матчей сразу же переходя к ним.
Состоит из таблицы с именами игроков созданный с помощью блочной верстки.
Поиска - который может фильтровать сыгранные матчи по именам.
И динамической пагинации.
- Перейдите в папку на вашем компьютере в которой должен находится проект
- Используйте команду
git clone https://github.com/Asenim/Tennis_Ball_Scoreboard.git
для клонирования проекта - Найдите файл ".env_sample" и следуйте инструкциям ниже
- Переименуйте файл ".env_sample" в ".env"
- Пропишите данные вашей БД
- DB_USER - логин
- DB_PASS - пароль
- DB_HOST - my_sql_db
- YOUR_IP_ADDR - localhost или 127.0.0.1
- (ЛИБО) Создайте файл ".env"
- SQL_DRIVER=mysql+mysqlconnector
- DB_USER=Ваше имя пользователя
- DB_PASS=Ваш Пароль
- DB_HOST=my_sql_db
- #DB_HOST=host.docker.internal
- #DB_HOST=127.0.0.1
- #DB_HOST=Ваш IP
- DB_PORT=3306
- DB_NAME=Ball_Scoreboard_db
- YOUR_IP_ADDR=Ваш IP
- Выполните команду
docker compose up
- Открываете браузер и переходите на localhost:8080
- Перейдите в папку на вашем компьютере в которой должен находится проект
- Используйте команду
git clone https://github.com/Asenim/Tennis_Ball_Scoreboard.git
для клонирования проекта - Перейдите в папку с проектом при помощи
cd Tennis_Ball_Scoreboard
- Запустите виртуальное окружение в папке с проектом с помощью команд:
python3 -m venv venv
source venv/bin/activate
- Найдите файл ".env_sample" и следуйте инструкциям ниже
- Переименуйте файл ".env_sample" в ".env"
- Пропишите данные вашей БД и IP адрес который вы будете использовать для перехода по ссылкам
- DB_USER - логин
- DB_PASS - пароль
- DB_HOST - my_sql_db
- YOUR_IP_ADDR - IP вашего сервера
- (ЛИБО) Создайте файл ".env"
- SQL_DRIVER=mysql+mysqlconnector
- DB_USER=Ваше имя пользователя
- DB_PASS=Ваш Пароль
- DB_HOST=my_sql_db
- #DB_HOST=host.docker.internal
- #DB_HOST=127.0.0.1
- #DB_HOST=Ваш IP
- DB_PORT=3306
- DB_NAME=Ball_Scoreboard_db
- YOUR_IP_ADDR=Ваш IP
- (Далее инструкция для Ubuntu 22.04) Нам нужно установить docker compose версии v2.23.0
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
- Для проверки корректной установки введите
docker compose version
- Далее собираем образы и запускаем приложение при помощи команды
docker compose up
- И переходим по адресу вашего проекта
- Перейдите в папку на вашем компьютере в которой должен находится проект
- Используйте команду
git clone https://github.com/Asenim/Tennis_Ball_Scoreboard.git
для клонирования проекта - Перейдите в папку с проектом при помощи
cd Tennis_Ball_Scoreboard
- Запустите виртуальное окружение в папке с проектом с помощью команд:
python3 -m venv venv
source venv/bin/activate
- Найдите файл ".env_sample" и следуйте инструкциям ниже
- Переименуйте файл ".env_sample" в ".env"
- Пропишите данные вашей БД
- DB_USER - логин
- DB_PASS - пароль
- DB_HOST - пропишите ip-address вашего сервера - если вы деплоите на удаленный VDS
- Или 127.0.0.1/host.docker.internal - если вы из локальной машины запускаете
- (ЛИБО) Создайте файл ".env"
- SQL_DRIVER=mysql+mysqlconnector
- DB_USER=Ваше имя пользователя
- DB_PASS=Ваш Пароль
- #DB_HOST=my_sql_db
- #DB_HOST=host.docker.internal
- #DB_HOST=127.0.0.1
- DB_HOST=Ваш IP
- DB_PORT=3306
- DB_NAME=Ball_Scoreboard_db
- YOUR_IP_ADDR=Ваш IP
- Запустите вашу базу данных при помощи команды: (Отредактируйте юзера и пароль под данные в .env)
- Не используйте фигурные скобки в команде ниже
docker run --name test_db --rm -e MYSQL_ROOT_PASSWORD={Ваш пароль} -e MYSQL_DATABASE=Ball_Scoreboard_db -e MYSQL_USER={Ваше имя пользователя} -e MYSQL_PASSWORD={Ваш пароль} -d -p 3306:3306 mysql
- Сбилдите Dockerfile с помощью команды:
docker build . -t tennis_ball_scoreboard_project_in_ubuntu
- Запустите контейнер при помощи только что созданного образа
docker run --name my_server_ubuntu_container -it -p 8080:80 tennis_ball_scoreboard_project_in_ubuntu
- Переходите по адресу вашего сервера:8080 и проверяйте работу