Вы находитесь на странице: 1из 22

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ (РИНХ)

Факультет Компьютерных технологий и информационной безопасности

Кафедра Информационных технологий и защиты информации

ОТЧЕТ ПО ПРОИЗВОДСТВЕННОЙ
ПРАКТИКЕ

Выполнил студент группы ПРИ-331


направления 09.03.04 «Программная инженерия»

_Новченков Кирилл Сергеевич _ ______________


ФИО подпись

Принял отчет:
_к.э.н., доцент Е.В. Ефимова_ ______________
ФИО подпись

Отчет защищен: ______________


дата

Оценка: ______________

Ростов-на-Дону, 2021
Содержание
Введение……………………………………………………………………………………….

1 Теоритическое задание……………………………………………………………………

1.1 Анализ проблемы………………………………………………………………………


1.2 Методический материал по работе с программным
продуктом…………………………………………………………………………
2 Практическое задание……………………………………………………………………
2.1 Выбор инструментария для разработки проекта ………………..
2.2 Разработка алгоритма работы программного проекта …………
3 Перечень графического материала…………………………………………………….
3.1 Календарный график управления проектом ……………………………………..
3.2 Экранные формы работоспособности программного проекта …………..

Заключение……………………………………………………………………………………

Список используемых источников…………………………………………………………

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 2 с.


Введение

Искусственные нейронные сети (ИНС) – математические модели, а так же их


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

ИНС представляют собой систему соединённых и взаимодействующих


между собой простых процессоров (искусственных нейронов). Такие
процессоры обычно довольно просты, особенно в сравнении с процессорами,
используемыми в персональных компьютерах. Каждый процессор подобной
сети имеет дело только с сигналами, которые он периодически получает, и
сигналами, которые он периодически посылает другим процессорам. И тем
не менее, будучи соединёнными в достаточно большую сеть с управляемым
взаимодействием, такие локально простые процессоры вместе способны
выполнять довольно сложные задачи.

Таким образом исходя из вышесказанного нами было принято решение по


созданию телеграмм – бота, который бы позволил распознавать лица людей на
фотографии, из этого следует, что этот бот облегчит работу не только фотографам, но и
сотрудникам разных образовательной организаций.

1 Техническое задание

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 3 с.


1.1 Анализ проблемы
Цель анализа – разработка требований к системе.
На сегодняшний день не каждая организация имеет за собой собственные
нейронные сети, которые бы помогали учебным организациям в их и без того не легкой
работе, например фотографы при таких организациях, все сделанные ими фотографии
должны хранить у себя, но со временем, сделанные ими снимки пропадают в тонне таких
же фотографий с последующих проводимых мероприятий.
. В условиях использования современных информационных технологий – это
необходимый фактор существования, позволяющий расширить функционал в данной
области, тем самым дает большую вовлеченность в рабочий процесс, что хорошо
сказывается на дальнейшем самих сотрудников.
В настоящее время аналогов подобных ботов нет, поэтому рассмотрев данную
проблему нами было принято решение разработки данного проекта для РИНХ-а. Сделано
это было для того, чтобы в дальнейшем, как «прожжённые» фотографы, так и новые
работники могли в краткие сроки получить, нужные фотографии, чтобы как можно
быстрее приступить к работе.

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 4 с.


1.2 Методический материал по работе с программным – продуктом
1.2.1 Концептирование(Concept)

На этом первом шаге команда придумывает концепцию бота, и проводит


начальную проработку дизайна. Главная цель данного этапа – это дизайнерская
документация, включающая в себя Vision (развернутый документ, описывающий проект,
как конечный бизнес-продукт) и Concept Document (начальную проработку всех аспектов
продукта).
В продуктовой документации дизайнер формулирует и сохраняет свои идеи.
Исполнителю документация позволяет правильно понимать свои задачи по реализации
продукта. Тестировщик четко видит, что и как тестировать.
Принципиально важно, чтобы вся проектная и продуктовая документация
поддерживалась в актуальном состоянии на всех этапах развития проекта. Для её
эффективного использования и обновления правильно использовать специальные
инструменты. Например, использование Confluence для ведения дизайнерской
документации сильно упрощает процесс параллельного внесения изменений несколькими
участниками разработки, а также позволяет всем членам команды оперативно получать
любую актуальную информацию, касающуюся продукта и всех его изменений.
Среди ключевых принципов формирования продуктовой документации стоит
отметить: структурированность, защищенность от разночтений, полное описание
продукта, регулярную актуализацию.

1.2.2 Прототипирование(Prototyping)

Важный этап проектирования любой проекта – это создание прототипа. То, что
хорошо выглядит «на бумаге», совершенно не обязательно будет интересно в реальности.
Прототип реализуется для оценки основного процесса, проверки различных гипотез,
проведения тестов механик, для проверки ключевых технических моментов.
Очень важно на этапе создания прототипа реализовывать только то, что нужно
проверить и в сжатые сроки. Прототип должен быть простым в реализации, т.к. после
достижения поставленных перед ним целей, он должен быть «выкинут».

1.2.3 Вертикальный срез(Vertical Slice)

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 5 с.


Цель Вертикального среза – получить минимально возможную полноценную
версию продукта, включающую в себя полностью реализованный основные процессы.
При этом высокое качество проработки обязательно нужно воплотить только для тех
элементов, которые существенно влияют на восприятие продукта. При этом все базовые
«фичи» бота присутствуют как минимум в черновом качестве. Реализован минимальный,
но достаточный для воплощения полноценного набор контента (одна функция или как
минимум их должно быть несколько).

1.2.5 Производство контента(Content production)

На этом этапе производится достаточное количество контента для первого


запуска на внешнюю аудиторию. Реализуются все «фичи», запланированные к закрытому
бета-тестированию. Это наиболее продолжительный этап, который может занимать, для
крупных клиентских проектов год и более.
На этом этапе задействуется наибольшее количество специалистов, которые
занимаются производством всего основного наполнения бота. Художники создают все
графические ресурсы, дизайнеры настраивают баланс и заполняют конфиги,
программисты реализуют и полируют все «фичи».

1.2.6 «Friends and Family» / СВТ(Закрытое бэта – тестирование)

На этапе CBT продукт впервые демонстрируется достаточно широкой публике,


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

1.2.7 «Soft Launch» / OBT(Открытое бэта – тестирование)

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 6 с.


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

1.2.8 Release

На этом этапе должно быть полностью отлажено оперирование продукта


(техническая поддержка, работа с комьюнити).
Команда разработки на этом этапе занимается исправлением технических багов,
выявляемых в процессе эксплуатации и оптимизацией продукта. дизайнеры занимаются
тонкой настройкой бота под реальную ситуацию (особенно актуально для больших
проектов). И конечно идет разработка и интеграция в продукт нового контента,
поддерживающего интерес пользователей.

2 Практическое задание

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 7 с.


2.1.1 Выбор инструментария разработки для создания проекта
Python — это скриптовый язык программирования. Он универсален, поэтому
подходит для решения разнообразных задач и многих платформ, начиная с iOS и Android
и заканчивая серверными ОС.

Это интерпретируемый язык — он не компилируется, то есть до запуска


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

Разработка идёт в разы быстрее, потому что кода здесь куда меньше, чем
на других языках. И ещё Python отлично подходит новичкам. Именно с него можно начать
свой путь программиста

Его можно встретить в вебе и на мобильных устройствах, в приложениях


и решениях, связанных с машинным обучением (нейросети и искусственный интеллект),
а также в качестве встроенной системы.

Чаще всего Python используется в веб-разработке. Для работы с ним подключают


фреймворки: Pyramid, Pylons, TurboGears, Flask, CherryPy и — самый популярный —
Django.

Существуют и движки для создания сайтов на Python:

 Abilian SBE;
 Ella;
 Saleor;
 Wagtail;
 Django-CMS.

Также на Python пишут парсеры для сбора информации в интернете.

Python широко распространен во многих сферах: от системного администрирования


до Data Science.

Системным администраторам Python нужен для автоматизации задач. Он простой,


мощный и поддерживает специальные пакеты, которые повышают его эффективность. И,
самое главное, он по умолчанию установлен на все серверы с ОС Linux.

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 8 с.


Благодаря лаконичности Python можно быстро прочитать код и найти слабые
места. Форматирование в языке — часть синтаксиса.

В Python есть несколько библиотек, которые пригодятся для проведения


исследований и вычислений:

 SciPy — библиотека с научными инструментами;


 NumPy — расширение, которое добавляет поддержку матриц и многомерных
массивов, а также математические функции для работы с ними;
 Matplotlib — библиотека для работы с 2D- и 3D-графикой.

Благодаря библиотекам и простоте освоения языка многие учёные выбирают


Python — особенно он популярен у математиков и физиков.

Python — один из самых используемых в Data Science языков. На нём пишут


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

Также он помогает парсить данные из интернета. Например, в Google Python


применяют для индексации сайтов.

Telegram — кроссплатформенный мессенджер с функциями VoIP, позволяющий


обмениваться текстовыми, голосовыми и видеосообщениями, стикерами и фотографиями,
файлами многих форматов. Также можно совершать видео- и аудиозвонки,
организовывать конференции, многопользовательские группы и каналы. Клиентские
приложения Telegram доступны для Android, iOS, Windows Phone, Windows, macOS и
GNU/Linux. Количество ежемесячных активных пользователей сервиса по состоянию на
январь 2021 года составляет около 500 млн человек. В августе 2017 года в своем Telegram-
канале Павел Дуров заявил, что количество пользователей мессенджера ежедневно
увеличивается более чем на 600 тысяч.

По данным исследования TGStat на май 2019 года, наибольшая доля


пользователей из России приходится на лиц в возрасте 25-34 (38 %) и 18-24 (27 %) лет.
35,6 процента из российских пользователей составляют жители Москвы, 13,3 — жители
Санкт-Петербурга. Остальные регионы распределены более равномерно. Исследование
проводилось с помощью ответов ~82 тысяч респондентов разного пола, возраста и
местоположения.

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 9 с.


Проект финансируется Павлом Дуровым в объёме порядка 13 млн долларов США
ежегодно.

Помимо обмена сообщениями в диалогах и группах, в мессенджере можно


хранить неограниченное количество файлов вести каналы (микроблоги), создавать и
использовать ботов.

C 16 апреля 2018 года по 18 июня 2020 года на использование мессенджера на


территории России были наложены ограничения.

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 10 с.


2.1.2 Разработка алгоритма работы программного проекта «Песочница»

Config.py

# Add token of your bot here
TOKEN = "1702770128:AAFNaaf9i43twZKxO8RwG9oAkmziF-E8_QU"
POSTGRES_USER='postgres'
POSTGRES_PASSWORD='adminuser'
POSTGRES_DATABASE='rsuedb'

Mange.py

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'botrsue.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

if __name__ == '__main__':
    main()

Settings.py

"""
Django settings for botrsue project.

Generated by 'django-admin startproject' using Django 3.0.

For more information on this file, see
https://docs.djangoproject.com/en/3.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.0/ref/settings/
"""

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 11 с.


import os
from config import POSTGRES_DATABASE, POSTGRES_PASSWORD, POSTGRES_USER
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'dy=29gc5!g7q6ws8vd8fde$o!oqocag@lt6umq$i(1u5w*@2*7'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'botrsueapp'
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'botrsue.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 12 с.


                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'botrsue.wsgi.application'

# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': POSTGRES_USER,
        'PASSWORD': POSTGRES_PASSWORD,
        'NAME': POSTGRES_DATABASE,
        'HOST': 'localhost',
        'PORT': 5432
    }
}

# Password validation
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarity
Validator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator'
,
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator
',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidato
r',
    },
]

# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 13 с.


LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = False

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/

MEDIA_DIR = f'{BASE_DIR}/media'
MEDIA_ROOT = MEDIA_DIR
MEDIA_URL = '/media/'

Urls.py

"""botrsue URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""

from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Wsgi.py

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 14 с.


"""
WSGI config for botrsue project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'botrsue.settings')

application = get_wsgi_application()

bot.py

import os
import io
import base64
import pickle

import telebot
from PIL import Image
import face_recognition
from config import TOKEN
from botrsueapp.models import RsuePhoto
from django.core.files.base import ContentFile
from django.core.files.images import ImageFile
from django.core.management.base import BaseCommand, CommandError
from telebot.types import ReplyKeyboardMarkup, InlineKeyboardButton, InlineKeybo
ardMarkup

TRANSPARENCY = 65

# Инициализируем бота
client = telebot.TeleBot(TOKEN)

def create_image(image_bytes, name):
    image = ImageFile(io.BytesIO(image_bytes), name=name)
    RsuePhoto.objects.create(image=image)

class Command(BaseCommand):
    def handle(self, *args, **kwargs):

        # Этот декоратор нужен для обработки команды старт

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 15 с.


        @client.message_handler(commands=['start'])
        def first_message(message):
            # тут мы создаем кнопку 
            button = ReplyKeyboardMarkup(resize_keyboard=True)
            button.add("Отправить фотографию")

            # Отправляем сообщение и кнопку
            client.send_message(message.from_user.id,
                                "Здравствуйте, вас приветствует бот который нахо
дит ваши фото в базе Ринха",
                                reply_markup=button)

        # Обрабатываем фото
        @client.message_handler(func = lambda message: message.text == "Отправит
ь фотографию")
        def send_photo_message(message):
            # После нажатия кнопки просим отправить фотку
            msg = client.send_message(message.from_user.id, "Отправьте сюда фото
графию")
            client.register_next_step_handler(msg, scan_photo)

        # Сам обработчик
        def scan_photo(message):
            # Проверяем является ли сообщение фоткой, если после нажатия на кн
опку будет отправлено не фото то ничего не произойдет
            if message.content_type == 'photo':
                # Вытягиваем id фотографии
                raw = message.photo[-1].file_id
                
                # Даем назание фотографии
                name = raw + '.jpeg'
                
                # Получаем фотку в байтовом виде
                file_info = client.get_file(raw)
                downloaded_file = client.download_file(file_info.file_path)

                # Записываем временно фотку в файл
                # нам это нужно потому что библиотека для комп зрения не прини
мает байтовые фото
                with open(name, "wb") as file:
                    file.write(downloaded_file)

                # Загружаем фото в обработку  
                first_face_img = face_recognition.load_image_file(name)

                # Проходимся по всем фоткам в базе данных 
                client.send_message(message.from_user.id, "Идет анализ фотографи
й\n Это может занять время")
                for photo in RsuePhoto.objects.all():
                    # Загружаем фотку из базы в обработку

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 16 с.


                    # Создамем маски обоих фоток для сравнения на наличие лица
                    comp_image1 = face_recognition.face_encodings(first_face_img
)
                    image_encodings = pickle.loads(base64.b64decode(photo.image_
encodings))
                    # Сравниваем фотки
                    result = [face_recognition.compare_faces([encoding1], encodi
ng2)
                                                for encoding1 in comp_image1
                                                for encoding2 in image_encodings
]
                    print("debug")
                    # если находим лицо на фотографии то отправля
                    if [True] in result:
                        # Открываем логотип университета для создания водного з
нака
                        rsue_photo = Image.open("logo_r.png")
                        rsue_photo = rsue_photo.resize((120, 80), Image.ANTIALIA
S)
                        # настраиваем каналы цвета на водном знаке
                        if rsue_photo.mode!='RGBA':
                            alpha = Image.new('L', rsue_photo.size, 255)
                            rsue_photo.putalpha(alpha)

                        # Создаем прозрачность
                        paste_mask = rsue_photo.split()[3].point(lambda i: i * T
RANSPARENCY / 100.)

                        # 
                        image = Image.open(photo.image)
                        width, height = image.size
                        image = image.resize((int(width/2), int(height/2)))
                        # Добавляем водный знак
                        image.paste(rsue_photo, (1, 1), mask=paste_mask)

                        # Отправляем фотку
                        client.send_photo(message.from_user.id, image)
                client.send_message(message.from_user.id, "Процесс окончен, если 
вы не видите отправленных фотографий значит вас нет в базе")
                # Удаляем временную фотку   
                os.remove(name)

        client.polling(none_stop=True)

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 17 с.


3 Перечень графического материала
3.1 Календарный график управления проектом

Отметка
руководител
4 № я практики
Сроки
Вид, содержание Планируемые от
выполнени
п/ планируемых работ результаты практики профильной
я
п организации
о
выполнении
1. Изучение предметной области Готовый план проекта 5.07.21

2. Подготовка рабочего 6.07.21


пространства
3. Планировка проекта. Создание Готовая канбан – 6.07.21
канбан – доска доска(Trello)
4. Изучение материалов для Материал изучен 7.07.21
работы(библиотеки,
Python,Telegram)
5. Работа над «ботом», написание Готовый скрипт 9.07.21
нужного скрипта

6. Добавление кнопок и прочего Отображение объектов 13.07.21


в бота
7. Добавление настроек для Работающие настройки 15.07.21
проекта приложения
8. Сдача проекта заказчику Демонстрация продукта 16.07.21
заказчику, заказчик доволен

4.1 Экранные формы работоспособности программного проекта «Песочница»

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 18 с.


ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 19 с.
Заключение

По итогу данной учебной практики, нами был разработан бот, для поиска
фотографий в архивах университета, сделано, это с целью того, чтобы люди работающие в
университете быстро могли находить нужные фотографии, не прерывая свою основную
работу в рабочей среде РИНХ – а, в данной работе было разработано простая и удобная
форма поиска, так же вместе с этим было реализовано хранение и получение самих
файлов, чтобы пользователь мог в краткие сроки получить все необходимое в рабочем
пространстве. Данный бот и дальше будет дорабатываться, это делается для того чтобы
избежать устаревания данного продукта, а так же для добавления в него нового полезного
функционала

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 20 с.


Список используемых источников

1. Эрик Мэтиз. «Изучаем Python. Программирование визуальных данных»


2. Пол Бэри. «Изучаем программирование на Python»
3. Марк Лутц. «Изучаем Python»
4. Билл Любанович. «Простой Python. Современный стиль программирвания»
5. Дэн Бейдер. «чистый Python. Тонкости программирования для профи»
6. Лучано Рамальо. «Python к вершинам мастерства»
7. Дег Хеллман. «Стандартная библиотека Python 3. Справочник с примерами»
8. Бизл и Джонс. «Python. Книга рецептов»
9. Гарри Персиваль. «Python. Разработка на основе тестирования»
10. Мигель Гринберг. «Разработка ботов с использованием botAPI на языке Python»

ПП-2021 - кафедра №35 ИТиЗИ – группа ПРИ-332 – Новченков К.С – 09.03.04 21 с.