Git Product home page Git Product logo

Добрый день!

Будем знакомы, меня зовут Нина Сперанская. 👋

Я Python-разработчик с опытом разработки бэкенда во фреймворках Django/DRF и FastAPI с использованием PostgreSQL, Swagger, Celery (Redis), Git, Docker.

Также интересуюсь Data Engineering, знаю SQL, понимаю процессы ETL.

Проекты:

Backend сайтов

Развернуть
  • В команде

    • Сайт центра для слабовидящих
      Стек: Django/DRF, Celery, Swagger, PostgreSQL, Docker, Git/GitLab.
      Сайт проекта

      Подробнее

      Проекты, документы, новости, полезные материалы, команда.
      Фильтры, поиск.
      Настройка административной панели.
      Деплой на сервер.

    • Сайт добрых новостей
      Стек: FastAPI, Swagger, SQL, PostgreSQL, Docker, Git/GitLab.
      Сайт проекта

      Подробнее

      Микросервисная архитектура.
      Регистрация пользователей.
      Статьи, документы, новости, команда, добровольцы.
      Фильтры, поиск.
      Разные уровни доступа: для админов, модераторов, обычных пользователей.

    • Сайт благотворительного центра
      Стек: Django/DRF, Celery, Swagger, PostgreSQL, Docker, Git/GitLab.
      Сайт проекта
      Описание проекта на Behance

      Подробнее

      Изменяемая информация о центре: новости, сборы, волонтёры, проекты.
      Личный кабинет пользователя.
      Интернет-магазин благотворительных товаров.

    • Сайт карточной игры Twelve
      Стек: Django/DRF, Pytest, Swagger, PostgreSQL, Docker, Git/GitHub.
      Сайт проекта
      Ссылка на репозиторий

      Подробнее

      Коллекционная карточная игра

  • Индивидуально

    • Сайт аренды квартир
      Стек: Django/DRF, Pytest, Swagger, PostgreSQL, Docker, Git/GitHub.
      Ссылка на репозиторий

      Подробнее

      (Сайт в процессе разработки)
      Возможность оставить онлайн-заявку.
      Подробная административная панель.
      Отправка почты. Логирование, задачи по расписанию.
      Docker для локального развёртывания проекта (для фронтенда).
      Unit-тестирование API с помощью Pytest.
      В дальнейшем планируется деплой на сервер всего проекта и CI/CD.

Тестовые задания

Развернуть
  • Калькулятор с использованием только сложения и вычитания
    Стек: Python 3.9, Pytest, Poetry.

    Задание
    • Базовые функции:

      • + сложение,
      • - вычитание,
      • / деление,
      • * умножение,
      • % остаток от деления,
      • ^x возведение в степень,
      • x^1/2 извлечение квадратного корня,
      • решение простых уравнений с одним неизвестным, например, 2 + x = 14
    • Требования:

      • Используем Python 3.9
      • Использование библиоттек запрещено (в т.ч. импорты базовых модулей по типу decimal или math).
      • Допустимо использовать для реализации только "+" и "-",
      • Ввод значений происходит через терминал.
      • Необходимо сохранять историю (ввод/вывод).
      • Копирование в буфер обмена по клавишам ctrl+c результата вычислений
      • Обработка ошибок и вывод в человеко-читаемом формате
      • Результат вычислений должен иметь погрешность:
        • при int <= 0.5%.
        • при float <= 5%.

    Решение

  • Simple RESTful API for a social networking application
    Stack: Python 3.11, FastAPI, SQL, PostgreSQL, Swagger, Docker.

    Task
    • There should be some form of authentication and registration (JWT, Oauth, Oauth 2.0, etc..)
    • As a user I need to be able to signup and login
    • As a user I need to be able to create, edit, delete and view posts
    • As a user I can like or dislike other users’ posts but not my own
    • The API needs a UI Documentation (Swagger/ReDoc)

    Solution

  • Тестовое задание с ипользованием библиотеки Pandas
    Стек: Python 3.11, Pandas, Jupiter Notebook.

    Задание

    Время на выполнение задания: одни сутки (до 24ч) с момента получения задания и до момента отправки решения задания менеджеру в чат.

    • Найти тариф стоимости доставки для каждого склада
    • Найти суммарное количество , суммарный доход , суммарный расход и суммарную прибыль для каждого товара (представить как таблицу со столбцами 'product', 'quantity', 'income', 'expenses', 'profit')
    • Составить табличку со столбцами 'order_id' (id заказа) и 'order_profit' (прибыль полученная с заказа). А также вывести среднюю прибыль заказов
    • Составить табличку типа 'warehouse_name' , 'product','quantity', 'profit', 'percent_profit_product_of_warehouse' (процент прибыли продукта заказанного из определенного склада к прибыли этого склада)
    • Взять предыдущую табличку и отсортировать 'percent_profit_product_of_warehouse' по убыванию, после посчитать накопленный процент. Накопленный процент - это новый столбец в этой табличке, который должен называться 'accumulated_percent_profit_product_of_warehouse'. По своей сути это постоянно растущая сумма отсортированного по убыванию столбца 'percent_profit_product_of_warehouse'.
    • Присвоить A,B,C - категории на основании значения накопленного процента ('accumulated_percent_profit_product_of_warehouse'). Если значение накопленного процента меньше или равно 70, то категория A.
      Если от 70 до 90 (включая 90), то категория Б. Остальное - категория C. Новый столбец обозначить в таблице как 'category'
    Объяснение полей
    {
    "order_id": 85787,	# уникальный id заказа  ( int, варьируется в пределах (100, 100000))
    "warehouse_name": "хутор близ Диканьки",	# склад откуда отправился заказ (str)
    "highway_cost": -90,	# стоимость доставки заказа (суммарная стоимости доставки всех продуктов) (int)
    "products": [		# продукты входящие в заказ
    {
    "product": "зеленая пластинка",		# наименования продукта (str)
    "price": 10,	# цена продажи за единицу товара	(int)
    "quantity": 3	# количество проданного товара	(int)
    },
    {
    "product": "зеленая пластинка",	# наименования продукта (str)
    "price": 10,	# цена продажи за единицу товара	(int)
    "quantity": 2	# количество проданного товара (int)
    },
    {
    "product": "билет в Израиль",	# наименования продукта (str)
    "price": 1000,	# цена продажи за единицу товара	(int)
    "quantity": 1	# количество проданного товара (int)
    }
    ]
    },
    Объяснение highway_cost (стоимости доставки)

    Когда заказ доставляется из склада, то списывается стоимость доставки. У каждого склада есть определенный тариф, определяющий стоимость доставки. Это тариф имеет размерность стоимость доставки на единицу товара.
    Например для склада "гиперборея" стоимость тарифа составляет 20 рублей на единицу товара. Причем тариф не зависит от того какой именно товар мы заказали. Так, если мы заказали 5 зеленых пластинок и 3 билета в Израиль, то стоимость тарифа будет 20*(5+3) = 160 рублей.

    Уточнение по виду отчета

    В поле "products" не обязательно могут быть только уникальные значения наименовая товаров ("product"). Иногда (как в примере выше) названия товаров могут повторяться в поле "products".
    Однако поле "products" не может быть пустым

    Дополнительное пояснение

    доходом с товара является цена продажи * количество товара
    расходом является тариф для данного склада * количество товара
    прибылью является доход - расход

    Решение

  • Поиск пути между страницами Википедии
    Стек: Python 3.11, requests, beautiful soup, Wiki API.

    Задание
    • входные данные: 2 ссылки на wikipedia (можно из файла, можно из консоли вводить)

    • ссылки за пределами wikipedia путем не считаются

    • вручную от одной страницы до второй можно дойти за 3 клика

    • необходимо показать полный путь как пройти от ссылки 1 до ссылки 2

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

    • отображать это можно как в консоли, так и в web

    • дополнительно можно вести лог файл со всеми страницами, что были посещены при поиске

      Пример работы

      исходные ссылки:
      стартовая - https://ru.wikipedia.org/wiki/Xbox_360_S
      конечная - https://ru.wikipedia.org/wiki/Nintendo_3DS

      ожидаемый вывод:

      1------------------------  
      И 15 июня 2010 года Microsoft подтвердили их на выставке E³, объявив о прекращении производства старых версий Xbox 360 и скором старте продаж усовершенствованной версии консоли.
      https://ru.wikipedia.org/wiki/Electronic_Entertainment_Expo  
      2-------------------------  
      Это совпало с появлением нового поколения консолей, в частности с выпуском Sega Saturn, и анонсами предстоящих релизов PlayStation, Virtual Boy и Neo Geo CD.
      https://ru.wikipedia.org/wiki/Virtual_Boy  
      3-------------------------  
      Стереоскопическая технология в игровых приставках вновь появилась в более поздние годы и имела больший успех, включая портативную игровую приставку Nintendo 3DS
      https://ru.wikipedia.org/wiki/Nintendo_3DS  
      

      результат работы: github + readme файл с описание логики либо файл скрипта + readme файл с описание логики

    Решение

  • Тестовое задание по графовым базам данных
    Стек: Neo4j, cypher, Jupiter Notebook, Flask.

    Задание
    • Установить графовую базу из списка https://db-engines.com/en/ranking/graph+dbms
      • Предпочтительные - neo4j, nebula, arangodb
      • Предпочтительный язык запросов - cypher
    • Создать ipynb ноутбук, в котором:
    • Считать данные из источника https://disk.yandex.ru/d/s6wWqd8Ol_5IvQ
    • Внести данные из таблицы в графовую БД
    • Построить графовое представление в БД, осуществить несколько запросов на языке запросов к графовой БД
    • Найти взаимосвязи визуально и с помощью алгоритмов (алгоритмы на ваше усмотрение)
    • Написать rest сервис на python к графовой БД в котором на вход поступает ФИО, на выходе graphml или json
    • Результаты представить на гитхаб и в виде кода + небольшой презентации
    • Срок выполнения задания - около 10 дней, если вы не успеваете можете взять больше времени

    Решение

Учебные проекты в Нетологии

Развернуть
  • Направление «Программирование»

    • API сервиса заказа товаров для розничных сетей
      Стек: Django/DRF, Pytest, Swagger, PostgreSQL, Celery, Docker, Git/GitHub.
      Ссылка на репозиторий

      Подробнее REST API (backend) сервиса для автоматизации закупок в розничной сети с товарами от нескольких поставщиков.
    • API сайта объявлений
      Стек: Flask, SQLAlchemy, Celery, PostgreSQL, Docker, Git/GitHub.
      Ссылка на репозиторий

      Подробнее REST API (backend) сайта объявлений с авторизацией пользователей и возможностью почтовой рассылки.
    • Star Wars & Asyncio
      Стек: Asyncio, SQLAlchemy, PostgreSQL, Git/GitHub.
      Ссылка на репозиторий

      Подробнее Асинхронная выгрузка из Star Wars API персонажей Start Wars и их асинхронная загрузка в базу данных.
  • Направление «Аналитика»

    • Итоговый проект курса DWH (Data Warehouse)
      Стек: SQL, PostgreSQL, DBeaver, Pentaho, Git/GitHub.
      Ссылка на репозиторий, описание базы данных

      Подробнее Создание таблицы измерений и таблицы фактов на основе базы данных.
    • Проектная работа по модулю “SQL и получение данных”
      Стек: SQL, PostgreSQL, DBeaver.
      Описание базы данных, SQL-запросы

      Подробнее Получение информации из базы данных об авиаперелётах с помощью SQL-запросов разного уровня сложности (подзапросы, CTE / обобщённые табличные выражения, материализованные представления).

Дипломы и сертификаты

  • Python-разработчик с нуля (программа курса по ссылке), диплом о профессиональной переподготовке
    2022, ООО “Нетология”

  • Rest API (Intermediate) Certificate (ссылка)
    2022, HackerRank

  • ETL-разработчик (программа курса по ссылке), удостоверение о повышении квалификации
    2022, ООО “Нетология”

  • SQL (Basic) Certificate (ссылка)
    2021, HackerRank

  • Learning How to Learn: Powerful mental tools to help you master tough subjects (программа курса по ссылке), сертификат (ссылка)
    2021, Coursera Inc, Deep Teaching Solutions

  • Machine Learning (программа курса по ссылке), сертификат (ссылка)
    2018, Coursera Inc, Stanford University

Достижения

  • Прошла в финал Кубка Яндекса по программированию 2022 (Алгоритмы: Марафон)

Контакты:

Nina Speranskaya's Projects

apartmentsnn icon apartmentsnn

Backend сайта "Квартиры в Нижнем Новгороде"

factory_bot icon factory_bot

Django REST API для отправки сообщений боту Telegram

git-homeworks-neuro-pr icon git-homeworks-neuro-pr

Репозиторий для работы над домашними заданиями в курсе Git

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.