Вашей итоговой работой будет проект, который вы будете "защищать" в конце. У проекта есть две глобальные цели: сделать что-то работающее, что более-менее походит на продукт, и попрактиковаться в изученных темах, применить знания для реальной задачи. В связи с этим хочется видеть в ваших проектах отрожение основных наших тем: классы, исключения, тестирование, веб и т.д.
Update: мы посовещались с Костей и решили, что проекты можно делать индивидуально или вдвоем. Поэтому если хотите с кем-то объединить силы — пожалуйста. Итоговый балл за проект будет у обоих одинаковый (балл за устный ответ при этом индивидуальный).
Общие требования к проекту:
- "Хороший" код (codestyle, документация, разделение на модули)
- Использование классов, следование принципам ООП
- Связь с вебом в любом виде: собственное веб-приложение, использование чьего-то API (VK Api, Telegram API), краулинг и т.п.
- Понимание того, как работает ваш проект: хочется видеть, что вы продумали какую-то архитектуру, понимаете, как работает ваш код.
Приветствуется:
- Использование какой-нибудь системы контроля версии (
git
) - Нужные вам нестандартные модули (от
requests
доkeras
) - Различные фреймворки (
django
,tornado
, что хотите)
Логика вашего приложения может быть любой: от интеллектуального анализа, до простого сайта.
Ниже приводится список примеров проектов, которые можно взять. Вы можете выбрать один из них или придумать что-то свое. В таком случае лучше будет обговорить это со мной, чтобы уточнить, что именно вы будете делать. Все детали своей задачи вы определяете самостоятельно.
- Анализ постов в Twitter. Классификация постов и пользователей. API поиска лучших/худших/обсуждаемых постов.
- Поиск друзей. Веб-приложение поиска друзей рядом с собой. Отображение пользователей на карте. Профиль пользователя, фотография, описание, ссылка на соцсеть, возможность написать человеку.
- Обработка видео онлайн. Веб-приложение для наложение фильтров для видео.
- Коллективное расписание. Приложение для составления коллективных расписаний. Мероприятия, свободное время пользователей, поиск оптимального времени. Визуализация.
- Оценивалка фотографий. Сервис по оценке "крутости" фотографии: загружаешь фото, получаешь её оценку. Лента "лидеров".
Простые веб-приложения:
- Чат. Аккаунты, комнаты чатов, персональные чаты, отправка картинок.
- Месседж-борд. Возможность размещать сообщения. Различные потоки. Поиск по сообщениям/авторам.
- База данных фильмов. Отображение описания фильма. Добавление/удаление/изменение фильмов. Поиск по названию, авторам.
Простые десктоп-приложения:
- Сборщик статистики чатов. Сбор статистики чата VK/Telegram. Поиск самых активных пользователей. Оценка длины сообщений. Фильтры сообщений. Хранение в базе данных.
- База данных с краулера. Краулинг и парсинг веб-страниц какого-то сайта. Сбор информации, представление её в базе данных.
- Чат end-to-end. Десктоп-чат с персональной адресацией по ip-адресу (с выделенным портом). Открытие канала общения с конкретным человеком. Возможность обмениваться сообщениями и картинками.
- Маркетплейс API: Rapid API (1000s of Public Rest APIs) / API list (сборник смешных API)
- Карты: Google Maps API / OpenStreetMaps API
- Кино: OMDb API
- Соцсети: VK API / Telegram API / Twitter API / Instagram API
- Интеллектуальный анализ: Cloud Text-to-Speech ("говорилка" от Google) / Dialogflow (NLP тула для обработки запросов пользователя) / FaceR API (распознавание лиц)
- Различное:
- International Space Station API — трекинг МКС
- NASA APIs — набор различных API от NASA
- Pokemon API — вся информация о покемонах :)
(их легко найти по запросу "python api to NAME")
- Heroku — хостинг, с которым мы уже работали.
- DigitalOcean — мощный хороший хостинг. На случай если вам захочется чего-то более "взрослого", чем Heroku. Кажется имеет бесплатный доступ для студентов.
- Mockingbird — онлайн-конструктор фронтенда. Можно набросать кнопочки и странички.
- JSFiddle — онлайн-редактор фронтенда. Можно сразу писать HTML, CSS и JS.
- SQL-like, NoSQL — статьи про различные базы данных для вашего веб-приложения на Python. Про это мы не говорили, будет полезным разобраться.
- Design Patterns — очень классное описание различных паттернов разработки с примерами на Python. Помогает превратить ваше приложение во "взрослое", красивое, структурированное, масштабируемое детище.