Темы программ для программирования

Обновлено: 07.07.2024

Изучение основ Python — прекрасный опыт. Но эйфория от изучения языка постепенно заменяется желанием создать что-то своими руками. И это нормально, но нужны идеи.

Проблема здесь в том, что некоторые проекты либо слишком просты, либо слишком сложны для разработчика среднего уровня. Эта статья — помощь программисту уровня intermediate. Она предоставляет несколько идей проектов, которые могут стать интересным вызовом для вас. Материал адаптирован на русский язык совместно с Алексеем Некрасовым, лидером направления Python в МТС, программным директором направления Python в Skillbox.

Прочитав статью, вы сможете узнать:

  • Основные платформы для проектов.
  • 13 идей по созданию проектов.
  • Подсказки по работе с проектами.

Выбор платформы

Сперва необходимо определиться с выбором одной из трех основных платформ — веб, десктоп или командная строка. Хотя, конечно, никто не отрицает возможности работать сразу со всеми тремя.

На Хабре нет смысла объяснять, что такое веб-приложения. Понятно, что оно доступно всегда с любого устройства и состоит из двух основных компонентов — фронтенда и бэкенда. Поскольку в статье речь идет о разработке на Python, то основное внимание уделяется бэкенду. Но фронтенд тоже нужен, поэтому используем знания HTML, CSS и немного JavaScript. Для простого фронтенда этого вполне достаточно.

Еще один вариант — создание и фронтенд- и бэкенд-компонентов на Python с использованием библиотеки anvil. Что касается фреймворков для работы, то можно порекомендовать Django и Flask в качестве одних из самых популярных.

В рамках профессии “Python-разработчик” мы обучаем не только делать веб-приложения, разбираться во фреймворках и библиотеках, но и системному подходу в их создании.

Для создания десктопных приложений на Python существуют специальные библиотеки. Одна из них PySimpleGUI, она хорошо подходит для разработчика среднего уровня. PyQt5 имеет больше возможностей, но потребует и больше времени для изучения.

ПО, которое вы разработаете, будет работать на всех ОС, включая Windows, Linux или Mac. Главное — скомпилировать проект в исполняемый файл для требуемой ОС.

Командная строка

Такие приложения работают в консоли при помощи ввода специальных команд. Эти приложения не имеют GUI, но в большинстве случаев они не менее мощные, чем приложения с графическим интерфейсом. Если хотите улучшить внешний вид консольного приложения, вот пара библиотек: Colorama и Colored. Фреймворки Docopt, Argarse и Click значительно упрощают процесс создания приложений.

Идеи для веб-приложений

Агрегатор контента

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

Примеры хороших контент-агрегаторов:

Неплохо бы еще реализовать агрегацию контента в качестве фонового процесса, с чем могут помочь такие библиотеки, как APScheduler.

После того как мы спарсили контент, его придется где-то хранить, соответственно, нужно использовать базу данных. Можно использовать PostgreSQL для хранения метаданных, Elasticsearch для быстрого полнотекстового поиска по контенту (если это текстовый контент).

А если хотите сделать приятное пользователям, то можно добавить подписку, — и в конце дня все подписчики получат нужную информацию по электронной почте. С этой задачей вам помогут python модули smtplib и email.

Regex Query Tool

В некоторых случаях нужен поиск данных в текстовом документе. Если задача нестандартная, то обычный инструмент поиска не подходит. Поэтому можно создать инструмент, основанный на регулярных выражениях — это и будет Regex Query Tool.

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

Примеры такого инструмента:

Нужно добиться от приложения получения положительного или отрицательного ответа в ходе поиска. Это может быть «строка найдена» и «строка не найдена», выделенная определенными цветами.

Писать алгоритм с нуля не нужно, для этого можно использовать re- — стандартную библиотеку Python, которая будет возвращать найденные строки или None, если ничего не найдено.

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

Сокращатель ссылок

Собственно, здесь все понятно уже по названию проекта. Его предназначение — превращать длинные и неудобные ссылки в короткие и красивые, уменьшая количество символов в URL-адресе.

Примеры приложений:

Подробности

В поле ввода приложения пользователи будут вводить исходный адрес, получая новый. Для создания сокращенного адреса можно использовать стандартные python модули random и string.

Для того, чтобы ссылки не «умирали» с течением времени, их нужно хранить в базе данных. При поступлении запроса приложение будет проверять, существует ли URL-адрес и перенаправлять на оригинал. Если адреса нет, то будет показываться страница 404.

Post-It Note

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

Примеры приложений:

Главная задача проекта — предоставление пользователю пространства для наклеивания заметки. У каждого пользователя они свои, поэтому нужны учетные записи. К чужим заметкам доступа быть не должно.

Благодаря Django можно использовать систему аутентификации, не создавая ее с нуля. Кроме того, можно добавить еще и классификацию заметок, что увеличит полезность приложения для пользователей.

Еще одна важная задача — хранение данных каждого пользователя, что не получится реализовать без базы данных. Если вы выберете MySQL, то потребуется модуль MySQLdb или psycopg2-модуль для базы данных PostgreSQL. Если вдруг понадобится иная база данных, можно воспользоваться другими модулями.

Сделать приятно пользователю можно при помощи функции добавления времени для уведомлений.

Задача проекта — помочь пользователю проверить свои знания. Ну а приложение, о котором говорится ниже, позволяет создавать тесты и викторины. В приложении есть администраторы, которые создают тесты, и пользователи, отвечающие на вопросы.

После того, как пользователь прошел тест, приложение показывает итоговую оценку и правильные ответы. Если есть желание, можно ввести систему учетных записей, что позволит хранить результаты разных пользователей.

А значит, нужна и база данных, в которой вся эта информация будет храниться.

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

Десктопные приложения

Вот еще парочка примеров:

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

В Python есть библиотеки, которые позволяют работать с мультимедийными файлами. Они также могут обрабатывать не только MP3, но и другие файлы. Эти библиотеки — pygame, pymedia и simpleaudio.

Для того, чтобы сделать приятно пользователю, стоит добавить плейлисты. Для хранения информации понадобится база данных. Модуль sqlite3 отлично подходит для базы данных SQLite. Ее основа — файлы, и в настройке она проще, чем многие другие SQL базы данных.

А еще можно добавить функцию повторения трека и возможность перемешивания треков в плейлистах.

Почему бы и не создать будильник? Свой, собственный, почти ламповый.

Вот примеры проектов:

Главная задача такого приложения — запустить определенный звуковой сигнал или проиграть трек в определенное время. Таким образом, основные компоненты приложения — информация о времени и звуковой сигнал воспроизведения. Приложение должно чекать установленное время и активировать сигнал, когда наступает срок. Для воспроизведения звука можно использовать библиотеку pygame.

У пользователей должна быть возможность редактировать, и удалять напоминания. А приложение должно отображать их все, как активные, так и нет. Для хранения информации потребуется база данных.

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

Файловый менеджер

О том, что это такое, знает любой пользователь ПК. Что насчет создания собственного менеджера? С его помощью пользователи получают доступ к управлению файлами и каталогами. Также при помощи файлового менеджера пользователи могут копировать, перемещать и переименовывать файлы и каталоги.

Вот примеры файловых менеджеров:

Главная задача файлового менеджера — предоставить интерфейс для управления файлами. Он должен быть простым и удобным в использовании. Для этого можно воспользоваться PySimpleGUI. Кроме того, библиотеки sys, os и shutil будут весьма полезны для этого проекта. В них присутствуют функции для выполнения действий с файлами в фоновом режиме — то есть, когда пользователь занят другими делами. В приложении файлового менеджера можно установить отображение файлов в виде сетки или списка.

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

Учет расходов

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

Для предоставления данных о расходах нужно провести определенный статистический анализ. У приложения, кроме чисто аналитических функций, должен быть хороший интерфейс. С этим поможет PySimpleGUI. Ну а библиотеки PyData, включая Pandas и Matplotlib, помогут с техническими аспектами. В первом случае помощь оказывается с анализом данных, во втором — с построением графиков.

Информацию пользователей можно хранить при помощи SQLite и Python-модуль Sqlite3.

Чтобы сделать приятное пользователю, желательно добавить функцию напоминания внесения расходов. В противном случае человек забывает об этом, а восстановить список трат по памяти — очень сложно.

Приложения для командной строки

Адресная книга

Контактов у практически любого современного человека очень много. Для того, чтобы их не терять, помогает адресная книга. Обычно в ней хранится имя, адрес, номер телефона и адрес электронной почты. Можно также создать и софт, который люди будут использовать для хранения и поиска контактных данных. Он всегда будет доступен в командной строке.

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

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

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

Для хранения информации, как и в предыдущих случаях, подходит база данных SQLite.

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

Проверка доступности сайта

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

Для подключения к ресурсу нужно определить протокол — TCP или ICMP. Для проверки требуется модуль Socket. Благодаря фреймворку, будь то Docopt, Click или Argparse, можно добавлять команды, чтобы пользователь мог взаимодействовать с приложением. У него должна быть возможность запускать приложение, останавливать его и определять интервалы проверки.

Что использовать для хранения данных? Это мы уже знаем — SQLite.

Чтобы сделать приятно пользователю, можно добавить функцию уведомления, например, звуковой сигнал. Уведомление предупредит пользователя об изменении статуса сайта.

Bulk File Rename Tool

В некоторых случаях пользователю нужно дать имена всем файлам в каталоге в соответствии с определенным шаблоном. Например, имена File0001.jpg, File0002.jpg. Ладно, если файлов 3-4, тогда можно сделать все вручную. Но если их тысячи? Тогда приходит на помощь Bulk File Rename Tool.

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

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

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

Генератор дерева каталогов

Если каталогов много, иногда возникает необходимость установления связи между ними. С этой задачей справляется генератор древа.

Для этого приложения понадобится библиотека os, она сможет демонстрировать связь между отдельными каталогами. Для создания команд потребуются библиотеки Docopt или Argparse для создания команд. Ну а для придания приложению более удобного вида стоит применить Colored.

Для того, чтобы сделать приятное пользователю, стоит добавить генерацию изображений из древа. Для этого можно использовать библиотеку Pillow.

Перевод первой части статьи «Starter Project Ideas for Developers».


Image by mohamed Hassan from Pixabay

Представляем вам список проектов для начинающих разработчиков. Хотя конечно, этими проектами вполне могут заняться и опытные программисты, осваивающие новый для себя язык.

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

Примеры в статье будут ориентированы больше на JavaScript-разработчиков, но сами идеи вполне пригодны для любого языка программирования.

Засучиваем рукава

Изучаем основы программирования с фокусом на создание, чтение, модификацию и удаление данных (CRUD).

Генератор имен


Image by Gerd Altmann from Pixabay

Придумывать имена сложно. Кажется, что в наше время все варианты username уже использованы. Почему бы не сделать так, чтобы вместо нас имена генерировал компьютер? Идея такого генератора очень проста. Вам потребуются лишь базовые знания языка программирования.

Для начала, следует определиться с тем, какого рода имена вы хотите генерировать (username, имена фантастических героев, персонажей книг или обычные имена). Также нужно придумать, из каких частей будут составляться эти имена.

После того как придумаете, что за имена будет генерировать ваша программа, нужно обдумать, как вы будете хранить данные (имена собственные, имена существительные и прилагательные, титулы и т. п.). Все это можно прописать жестко и хранить в файловой системе, используя CSV или текстовый файл. Можно извлекать из API. Можно хранить в базе данных. Если вы начинающий программист, изучите, какие структуры данных поддерживает ваш язык (объекты, списки, массивы, hashmap) и поэкспериментируйте с ними.

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

В чем смысл такого проекта

Это более продвинутый проект, чем hello world, но попроще или равный по сложности списку задач. То есть, это хороший проект для начинающих.

Занимаясь этим проектом, вы будете осваивать:

  • основы языка программирования;
  • простые структуры данных;
  • чтение данных и рандомный выбор их частей;
  • вывод данных.

Как можно усложнить проект

  • Генерируйте выбранные случайным образом названия объектов и выводите на экран изображения этих объектов. Это может быть полезным инструментом для людей, связанных с искусством.
  • Генерируйте имена персонажей игр или названия объектов с приложением их мини-историй.
  • Генерируйте темы для писателей.
  • Добавьте возможность ввода данных пользователем. Это может быть список слов, из которых будет делаться выборка, или имя пользователя, которое будет использоваться в качестве основы для производных имен.

Примеры:

    — генерирует названия блюд, блогов, имена пользователей, просто имена людей и т. д.
  • Fantasy Name Generator — фэнтезийные имена для игр и пр. — выводит изображения случайных объектов.

(От редакции. Как часто вам случалось в соцсетях читать комментарии типа «лучше бы ямы залатали», «лучше бы дороги отремонтировали», «лучше бы на детей внимание обратили»? Можно создать специальный «лучшебыгенератор», случайным образом выдающий «лучше бы» предложение. Реализация — веб-страница. Применение — отвечать советчикам в комментариях, давая ссылку на страницу. Пример можно посмотреть здесь).

Список кодов символов


Image by Sergei Tokmakov from Pixabay

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

В чем смысл такого проекта

Этот проект — хорошая отправная точка, если вы хотите научиться принимать пользовательские данные, обрабатывать их и выводить результат.

Занимаясь этим проектом, вы будете осваивать:

  • работу с текстом и кодами символов;
  • пользовательский input;
  • текстовый output.

Как можно усложнить проект

  • Генерируйте рандомный список эмодзи.
  • Реализуйте шифратор и конвертируйте с его помощью текст в эмодзи.
  • Реализуйте эту идею в виде десктопного или веб-приложения.

Примеры:

    — приложение-справочник по эмодзи.
  • Text to ASCII — конвертирует текст в код ASCII.

Конвертер текста и чисел


Image by 272447 from Pixabay

Конвертирует числа в двоичную или любую другую систему счисления, а текст видоизменяет (шифрует, переворачивает и т. п.).

В чем смысл такого проекта

Вы не только создадите полезный инструмент, но и научитесь работать с числами и текстом.

Занимаясь этим проектом, вы будете осваивать:

  • input, output;
  • работу с текстом и числами.

Как можно усложнить проект

  • Разрешите пользователю загружать или выбирать текстовый файл, который затем будет конвертироваться и выводиться в виде нового файла.
  • Реализуйте собственный шифратор (не забудьте добавить методы для дешифровки!).
  • Используйте GUI или веб-интерфейс с полем для ввода текста и полем, где будет показываться видоизмененный текст. Конвертируйте input по мере ввода.

Примеры:

  • Шифр Цезаря — простая техника шифрования со сдвигом букв алфавита.
  • Текст в двоичный код.
  • Перевод десятичных чисел в шестнадцатеричные.
  • Переворачивание текста

Список задач и альтернативные полнофункциональные приложения


Image by Greg Montani from Pixabay

Наконец, список задач — идея, за которой вы все сюда и пришли. Шутка:) Но список задач, пожалуй, действительно один из самых распространенных видов проектов, так что без него наша статья была бы неполной. Впрочем, мы все же постараемся добавить несколько интересных альтернатив.

В чем смысл такого проекта

Создание списка задач — отличный способ изучить работу с данными (CRUD), какой-то язык или фреймворк.

Например, вы изучаете JavaScript. Вы можете построить список задач для применения в браузере, используя DOM браузера и LocalStorage APIs. Затем вы создаете API списка задач в бэкенде, используя NodeJS, чтобы изучить, как работает REST API. Наконец, вы обращаетесь к десктопу и создаете еще один список задач, используя Electron — чтобы изучить работу десктопных приложений.

Занимаясь этим проектом, вы:

  • изучите создание, чтение, модификацию и удаление данных (а это основа любого приложения);
  • получите хорошее представление о языке или каком-то инструменте.

Как можно усложнить проект

  • Геймифицировать.
  • Интегрировать с другими приложениями.
  • Построить приложение на разных платформах (мобильное, десктопное, веб-приложение).
  • Добавить напоминания в виде электронных писем или SMS.

Альтернативные варианты приложений для отработки навыков CRUD

  • трекер упражнений;
  • журнал;
  • блог, форум (вроде Reddit);
  • приложение для онлайн-банкинга (создание аккаунта, обновление счета и т. п.);
  • текстовый редактор;
  • приложение для планирования (календарь, kanban-доска);
  • трекер привычек.

Примеры:

Секундомер и таймер


Image by Free-Photos from Pixabay

Таймер может быть как простым, так и довольно сложным и интересным.

В чем смысл такого проекта

Это полезное приложение, которое вы в конечном итоге сможете использовать (или заново реализовать) в каком-то другом проекте.

Занимаясь этим проектом, вы будете осваивать:

  • работу с датами и временем;
  • особенности написания кода для постановки приложения на паузу и возобновления его работы;
  • отображение и постоянное обновление значений.

Как можно усложнить проект

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

Примеры:

    — Pomodoro-таймер — таймер для скоростного прохождения игры — приложение для отслеживания времени

В следующей части статьи мы рассмотрим идеи более сложных приложений. Больше никаких списков задач!


У разработчиков, как и у писателей, бывает ступор, когда хочешь что-то написать, но не знаешь что.

Мы с моим другом Джимом собрали коллекцию идей для приложений, чтобы решить эту проблему. 👍

Для чего это нужно:

  • Улучшить навыки программирования.
  • Опробовать новые технологии.
  • Наполнить портфолио.
  • Использовать как примеры, создавая собственные уроки.
  • Их легко выполнить, а также можно добавлять новые фичи.

Это не просто список проектов. Здесь есть детальное описание каждого задания, чтобы помочь вам начать разработку с нуля.

В описании каждого проекта вы найдёте:

  1. Постановку задачи.
  2. Описание возможностей, которые должны быть реализованы (это скорее подсказка, чем жёсткое условие. Вы можете добавлять собственные функции, если хотите).
  3. Список дополнительных фич, реализация которых поможет прокачать ваш проект и мозги.
  4. Ссылки на ресурсы, которые помогут вам выполнить проект.

Все проекты разделены на три уровня сложности:

  1. Начальный — для новичков, которые как правило сосредоточены на разработке пользовательских приложений.
  2. Средний — более опытные разработчики, которые уже знакомы с UI/UX, умеют пользоваться инструментами разработки и внедрять API сервисы в свои приложения.
  3. Продвинутый — те, кто прошёл две предыдущие стадии и хочет улучшить навыки изучив новые техники, например внедрение бэкенд приложений и баз данных.

Далее представлены по 5 проектов для каждого уровня (всего 15). На данный момент мы собрали более 30 проектов, их можно найти на GitHub. В дальнейшем мы планируем пополнить этот список.

Уров е нь: 1 — Начальный

Описание: создаёт и хранит напоминания

Возможности

  • Создать запись.
  • Редактировать запись.
  • Удалить запись.
  • При закрытии окна, записи сохраняются. Открыв приложение, сохранённые записи восстанавливаются.

Дополнительные фичи

  • Пользователь может создавать и редактировать записи в формате Markdown. При сохранении данные конвертируются в HTML.
  • Пользователь может посмотреть дату создания записи.

Ссылки и ресурсы

Пример проекта

Уровень: 1 — Начальный

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

Проще говоря, симуляция новогодней гирлянды.

Возможности

  • Кнопка для запуска/остановки мигания.
  • Можно менять интервал мигания.

Дополнительные фичи

  • Выбор цвета каждого огонька.
  • Выбор уровня яркости.
  • Изменение размера любого огонька.
  • Выбор количества рядов (от 1 до 7).

Ссылки и ресурсы

Пример проекта

Уровень: 1 — Начальный

Описание: для веб-разработчика важно понимать основы работы с изображениями, потому что UI/UX современных приложений во многом на них опирается.

В приложении вы реализуете возможность вращения изображения. На экране отображается 4 копии одного изображения, представленного в матрице 2 на 2. Используя стрелки вверх, вниз, влево и вправо рядом с каждым изображением, пользователь может повернуть их вертикально или горизонтально.

Допускается использовать только чистый HTML, CSS, и Javascript. Сторонние библиотеки не допускаются.

Возможности

  • Отображение 4 копий одного изображения в матрицы 2 на 2.
  • Рядом с каждой копией есть стрелочки вверх, вниз, влево и вправо, с помощью которых пользователь может вращать каждое изображение.

Дополнительные фичи

Ссылки и ресурсы

Пример проекта

Уровень: 1 — Начальный

Описание: тест, в котором можно проверить свои знания, отвечая на вопросы.

Создайте приложение для других разработчиков, в котором они смогут проверить свои знания HTML, CSS, JavaScript, Python, PHP и т.д.

Возможности

Дополнительные фичи

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

Ссылки и ресурсы

Пример проекта

Уровень: 1 — Начальный

Описание: каждый римский символ имеет своё фиксированное целое значение, которое можно преобразовать в десятичный формат. В наши дни используют семь символов:

Возможности

Дополнительные фичи

  • Автоматический вывод ответа без нажатия кнопки (сразу после ввода символа).
  • Возможность обратной конвертации (десятичные в римские).

Ссылки и ресурсы

Пример проекта

Не пропустите 5 приложений среднего уровня сложности во второй части.

Любите заниматься программированием, но порой не хватает вдохновения? Тогда наши идеи вам в помощь! Они прекрасно подойдут и для наполнения резюме, и для запуска стартапа.

1. Интегрирование

Настоящий must have и must be. Разгуляться есть где: интеграция с популярными мессенджерами, соцсетями, инструментами управления Jira, Trello и тому подобными, программами для тайм-менеджмента и т. д.

Для реализации проекта нужно:

  • досконально знать REST API;
  • поработать над приятным и удобным интерфейсом;
  • владеть HTML, JS, CSS.

Зачастую в подобных приложениях один конкретный сервис интегрируется с несколькими другими. Конечная точка здесь зависит от того, к какому ресурсу пользователь будет подключаться.

2. «Напоминалки»

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


Почему желательно работать именно над мобильным приложением? Все просто – это самый удобный вариант для пользователей: заметки всегда под рукой.

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

3. Шифрование

Тема информационной безопасности никогда не утратит актуальности. Займитесь созданием своего шифровальщика, способного надежно защищать пользовательские данные.

Как вариант, приложение может читать текст и преобразовывать его с помощью определенного шифра, например, Цезаря.

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

4. Вычислитель спама

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


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

5. Чат-бот

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


6. Быстрый контакт

Нет, вы сейчас не о том подумали. Объясняем.

Сейчас люди в среднем пользуются как минимум двумя мессенджерами и двумя соцсетями. При этом где человек «зависает» в данный момент определить сложно. А что если связаться с ним нужно очень срочно?


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

Больше интересных новостей

Почему программисты повсюду используют «i»

Почему программисты повсюду используют «i»

Как устроен дизайн? UX шаблоны, на которых держится всё

Как устроен дизайн? UX шаблоны, на которых держится всё

Почему ненавидят PHP? Какое будущее у PHP

Почему ненавидят PHP? Какое будущее у PHP

Топ-7 языков программирования, которые популярны у работодателей в США

Топ-7 языков программирования, которые популярны у работодателей в США

Читайте также: