Skip to content

Latest commit

 

History

History
76 lines (53 loc) · 8.78 KB

PROJECT.md

File metadata and controls

76 lines (53 loc) · 8.78 KB

Проект

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

Update: мы посовещались с Костей и решили, что проекты можно делать индивидуально или вдвоем. Поэтому если хотите с кем-то объединить силы — пожалуйста. Итоговый балл за проект будет у обоих одинаковый (балл за устный ответ при этом индивидуальный).

Общие требования к проекту:

  • "Хороший" код (codestyle, документация, разделение на модули)
  • Использование классов, следование принципам ООП
  • Связь с вебом в любом виде: собственное веб-приложение, использование чьего-то API (VK Api, Telegram API), краулинг и т.п.
  • Понимание того, как работает ваш проект: хочется видеть, что вы продумали какую-то архитектуру, понимаете, как работает ваш код.

Приветствуется:

  • Использование какой-нибудь системы контроля версии (git)
  • Нужные вам нестандартные модули (от requests до keras)
  • Различные фреймворки (django, tornado, что хотите)

Логика вашего приложения может быть любой: от интеллектуального анализа, до простого сайта.

Ниже приводится список примеров проектов, которые можно взять. Вы можете выбрать один из них или придумать что-то свое. В таком случае лучше будет обговорить это со мной, чтобы уточнить, что именно вы будете делать. Все детали своей задачи вы определяете самостоятельно.

Идеи проектов

  • Анализ постов в Twitter. Классификация постов и пользователей. API поиска лучших/худших/обсуждаемых постов.
  • Поиск друзей. Веб-приложение поиска друзей рядом с собой. Отображение пользователей на карте. Профиль пользователя, фотография, описание, ссылка на соцсеть, возможность написать человеку.
  • Обработка видео онлайн. Веб-приложение для наложение фильтров для видео.
  • Коллективное расписание. Приложение для составления коллективных расписаний. Мероприятия, свободное время пользователей, поиск оптимального времени. Визуализация.
  • Оценивалка фотографий. Сервис по оценке "крутости" фотографии: загружаешь фото, получаешь её оценку. Лента "лидеров".

Простые веб-приложения:

  • Чат. Аккаунты, комнаты чатов, персональные чаты, отправка картинок.
  • Месседж-борд. Возможность размещать сообщения. Различные потоки. Поиск по сообщениям/авторам.
  • База данных фильмов. Отображение описания фильма. Добавление/удаление/изменение фильмов. Поиск по названию, авторам.

Простые десктоп-приложения:

  • Сборщик статистики чатов. Сбор статистики чата VK/Telegram. Поиск самых активных пользователей. Оценка длины сообщений. Фильтры сообщений. Хранение в базе данных.
  • База данных с краулера. Краулинг и парсинг веб-страниц какого-то сайта. Сбор информации, представление её в базе данных.
  • Чат end-to-end. Десктоп-чат с персональной адресацией по ip-адресу (с выделенным портом). Открытие канала общения с конкретным человеком. Возможность обмениваться сообщениями и картинками.

Полезные ресурсы и сервисы

Различные интересные API

Python API to ...

(их легко найти по запросу "python api to NAME")

Хостинги и ресурсы разработки

  • Heroku — хостинг, с которым мы уже работали.
  • DigitalOcean — мощный хороший хостинг. На случай если вам захочется чего-то более "взрослого", чем Heroku. Кажется имеет бесплатный доступ для студентов.
  • Mockingbird — онлайн-конструктор фронтенда. Можно набросать кнопочки и странички.
  • JSFiddle — онлайн-редактор фронтенда. Можно сразу писать HTML, CSS и JS.

Обучающие ресурсы и дополнительная информация

  • SQL-like, NoSQL — статьи про различные базы данных для вашего веб-приложения на Python. Про это мы не говорили, будет полезным разобраться.
  • Design Patterns — очень классное описание различных паттернов разработки с примерами на Python. Помогает превратить ваше приложение во "взрослое", красивое, структурированное, масштабируемое детище.