Best Flask open-source libraries and packages

Olymp calendar

Заполнение Google Calendar событиями олимпиад (Python+BeautifulSoup+Flask+SQLAlchemy+API+OAuth)
Updated 2 years ago

Командный проект для проектного семинара.

октябрь 2021


Олимпиадный календарь

О проекте

Спецификация требований программного обеспечения

Web-сервис для помощи планирования участия в олимпиадах на 2021/22 учебный год, используя Google Calendar с удобным поиском интересующих олимпиад по различным фильтрам и просмотром назначенного плана.

Сайт позволяет пользователям авторизоваться через гугл-аккаунт, предоставив доступ для изменения гугл-календаря и получения информации об аккаунте. После пользователь выбирает интересующие его школьные олимпиады из перечня с помощью фильтров, и сервис автоматически заносит даты их проведения со ссылками на их официальные источники в новый созданный гугл-календарь. Сервис запоминает старые настройки и позволяет при следующем использовании, изменять уже существующий список олимпиад пользователя, причем не создавая новый календарь.

Настройка OAuth 2.0

OAuth 2.0 используется для авторизации в google аккаунте, чтобы приложение могло в сервисе Google Calendar создавать календари и создавать\удалять события у конкретного пользователя.

  1. Переходим в OAuth consent screen из APIs & Services и настраиваем приложение:
  1. Переходим в Credentials из APIs & Services и создаем Client ID:
  • CREATE CREDENTIALS -> OAuth client ID
  • Application type -> Web application
  • заполняем нужные данные
  • в Authorized redirect URIs добавляем URI http://localhost:5000/oauth_callback
  1. Переходим на страницу Client ID for Web application из Credentials и сохраняем данные в формате .json (DOWNLOAD JSON)

Запуск приложения

  1. Создание виртуального окружения:
conda create -n py38_webapp_env python=3.8
conda activate py38_webapp_env
  1. Установка нужных библиотек:
pip install -r requirements.txt
  1. Настройка файла /config.py:
  • добавление информации для OAuth 2.0:
    • CLIENT_SECRET - путь к .json файлу, где лежат данные для доступа к OAuth 2.0
  1. Настройка базы данных:

Создание

export FLASK_APP=main.py (или set FLASK_APP=main.py , если не выходит первое)
flask db init
flask db migrate
flask db upgrade

Заполнение

python fill_db.py
  1. Запуск приложения:
python main.py

Итого, приложение было запущено на http://localhost:5000/

Использованные технологии

  • OAuth 2.0 - используется для авторизации в google аккаунте
  • Google Calendar API - позволяет создавать календари и создавать\удалять события в них
  • Python+BeautifulSoup+Flask+SQLAlchemy+Bootstrap