Создание системы донатов для приложения iOS (дизайн есть)
- Описание
- Описание
Необходимо создать систему донатов (поощрение) для мобильного приложения в существующем дизайне и возможностью дальнейшей интеграции в само приложение. Система должна соответствовать архитектуре MVC и иметь возможность работать обособленно от самого приложения. Система предполагает добровольного доната из перечисленных возможных вариантов, после покупки пользователь получает возможность оставить послание другим пользователем приложения на “доске почета”. Цены должны загружаться из магазина app store. Для загрузки данных доски почета и сохранения в нее новых записей используется собственное rest api (его разрабатывать не надо).
Структура
На рисунке 1 показано схематично взаимодействие всех экранов системы.
(Рис. 1)
Точкой входа является простой экран (Main) с одной кнопкой, это необходимо для дальнейшей интеграции системы в приложение. На основном экране (Donate) расположены два блока: блок с донатами, блок с 6 последними донатами. Окно донат 1 появляется с переходом present modally. На карточке доната отображается фотография пользователя, имя, фамилия и текст. При нажатие на карточку доната открывается окно записи (Donate One Post) в котором можно перейти по ссылке оставленной пользователем. Когда в карточке доната текст превышает длину двух строчек должна появляться кнопка еще. Окно один донат появляется при помощи анимации show, здесь должна быть реализация navigation controller.
В группе с донатами отображаются три варианта, цена загружается из app store, после нажатия появляется системное окно покупки. После покупки при помощи present modally идет переход на окно Donate Form.
Есть возможность не заполнять анкету сразу и тогда появляется кнопка добавить как показано на экране Donate 2, она возвращает на окно Dinate Form. Если запись была добавлена то отображается кнопка удалить как показано на экране Donate 3, она позволяет убрать запись с доски почета.
Если при покупки или добавлении записи возникает ошибка должно появляться сообщение с использованием SPAlert.
Изображение: .error
Заголовок: “Ошибка”
Текст: загружается с сервера, см. api
При успешной покупке и загрузки записи также показать данное окно.
Изображение: .done
Заголовок: для покупки “Отлично” для добавлении записи “Поздравляем”
Текст: для покупки “Покупка успешно произведена”, для добавлении записи “Вы попали на доску почета”
Экраны и layouts
На всех экранах элементы имеют отступы слева и справа с привязкой к safe area, в последнее версии она имеет размер 20px в предыдущих версиях 16px. Navigation Controller в данном приложении кастомный и имеет свои свойства и отступы. Пример использования смотреть в тестовом проекте. Все экраны должны быть адаптированы к разным разрешением и соблюдать правила safe area. Если контент на любом экране не умещается по высоте то должна быть возможность скролла и снизу должен быть отступ 20px до safe area.
Donate
Реализация всех карточек должны быть при помощи отдельных view для дальнейшего использования. Допускается использование uitableview insert grouped или uiscrollview. Доска почета должна быть реализована при помощи uicollectionview. Ячейки доски почета схожи с ячейками из таблицы Donate All Post, по этому должна быть реализована одна view. Ячейки имеют фиксированных размер. На данном экране есть кнопка которая изначально скрыта, также она принимает разный стиль в зависимости от алгоритма. Данная кнопка имеет привязку сверху а не к низу.
Donate All Post
Ячейки имеют разную ширину в зависимости от разрешения экрана. Должна быть реализована загрузка данных при прокрутки ниже. Ячейки такие же как на экране donate.
Donate One Post
В зависимости от текста карточка должна менять свою высоту. Все элементы должны находиться внутри uiscrollview для непредвиденных разрешений.
Donate Form
Все поля имею плейсхолдеры которые исчезают при наборе текста, поле ссылкой должно проходить проверку, поле имя и фамилия допускают ввод только одного слова, поле текст имеет максимальную длину 550 символов. Поле текст изначально имеет высоту 5 строче но по мере текста увеличивает высоту. Кнопка сохранить имеет привязку сверху. Все элементы должны находиться внутри uiscrollview для непредвиденных разрешений.
Когда пользователь выбирает фотографию меняется надпись кнопки на изменить фото. При выборе фотографии должен быть выбор отображаемой области.
Edit Photo
Должна быть реализована возможность pinch to zoom без изменения поворота изображения. Допускается использование сторонних решений при обсуждении.
Rest API
Все запросы имеют одинаковый формат ответа JSON, в ответе всегда есть поле “Error” и “Data”. В зависимости от ошибки поле “Data” может быть пустым.
Расшифровка всех ошибок:
01 - не все входные данные имеются
00 - ответ от бд получен но записей нету
10 - ответ от бд получен или все записи были внесены
20 - ошибки при записи
11 - недостаточно средств
12 - операция не возможно так как была проведена ранее
Параметры отмеченные * являются обязательными.
В некоторых запросах необходим параметр user_id, это уникальный номер каждого пользователя и он храниться в NSUserDefaults под ключом MatimatikProfileID. Для тестирования используйте: ТЕСТОВЫЙ ID ПОЛЬЗОВАТЕЛЯ.
Все записи
Позволяет просмотреть все записи на доске почета.
Адрес: ССЫЛКА
Параметры:
offset - смещение, необходимое для выборки определенного подмножества записей. Положительное число. Изначально равно 0.
count - количество записей, которое необходимо получить. Максимальное значение: 100. Положительное число. Изначально равно 50.
Пример ответа:
ПРИМЕР
Загрузка фото
Позволяет загрузить фотографию на сервер. В ответ получите идентификатор картинки.
Адрес: ССЫЛКА
Параметры:
user_id* - см. описание выше.
photo_file* - файл с фото. Тип файл. ПАРАМЕТРЫ КАРТИНКИ
Добавить запись
Позволяет добавить новую запись на доску почета.
Адрес: ССЫЛКА
Параметры:
user_id* - см. описание выше.
name* - имя пользователя. Типа строка, максимальная длина 100.
surname* - фамилия пользователя. Типа строка, максимальная длина 100.
text - текст записи. Типа строка, максимальная длина 550.
url - ссылка пользователя. Типа строка, максимальная длина 500.
buy_package* - идентификатор из app store. Типа строка, максимальная длина 100.
photo_id - идентификатор файла фото. Тип строка, максимальная длина 100.
Пример ответа:
ПРИМЕР
Удалить запись
Позволяет убрать запись пользователя из списка доски почета.
Адрес: ССЫЛКА
Параметры:
user_id* - см. описание выше.
Пример ответа:
ПРИМЕР
То, что выше отмечено ЖИРНЫМ КАПСОМ означает, что это еще дозаполнится до конца следующей недели (но это мелочи)
Информация о сотрудничестве:
Только безопасная работа. Основная приемка возможна по видеосвязи (вы показываете свой экран и демонстрируете код и работоспособность).
- Приложения
-
scheme.pngscheme.png 350.42 KB
- Безопасное сотрудничество
- Работодатель готов использовать "Безопасную сделку".
- Категория
Оставить заявку
Заявки специалистов
Заинтересовало ваше предложение.
Я представляю компанию ООО WebEx Technologies.
Мы работаем с 2007 года, специализируемся на создании сайтов, разработке мобильных приложений, разработке ПО, разработке Игр и 3D моделей. Так же проводим оптимизацию и доработку проектов.
Технологии которыми мы работаем :
HTML5, CSS3-Flex, Grid, Parallax, Sprites, PHP, JavaScript, ES9, jQuery, Bootstrap, Ajax, React JS, Laravel, OOP/MVS, MySQL и
Java, Android, Unite, React Native и др.
Мы выполняем для Вас успешное и эффективное создание сайтов, оптимизация и продвижение , реклама в интернете, поддержка и обслуживание.
Мы стараемся, чтобы каждая копейка, вложенная в сайт, его рекламу и обслуживание, была отработана на 100.
https://webex.site/
Telephone: 79584015407
Telegram: 79607707907
WhatsApp: 79607707907
есть свободное время готов обсудить. Всегда на связи
Возможна работа по договору.
Добавляйтесь обсудим детали.
Telegram: fldima
WhatsApp: 79652428831
Skype : live:.cid.9d12e48a85f5581c
E-mail : fl.dimalist.ru
Мы ищем:
созданиедоработка сложных сайтов
создание программ IOSandroid
верстка страниц
создание приложений.
Мы даём гарантию того, что работа будет выполнена качественно и быстро.
Я могу дать вам контакт нашего специалиста, с которым вы можете связаться и обговорить детали заказа, если я конечно вас заинтересовал.
Похожие проекты
Похожая удалённая работа
- Удаленная работа для веб-программиста
- Удаленная работа для разработчика баз данных
- Удаленная работа для прикладного программиста
- Удаленная работа для системного программиста
- Удаленная работа для разработчика игр
- Удаленная работа для разработчика мобильных приложений
- Удаленная работа для тестировщика ПО
- Удаленная работа для 1С программиста
- Удаленная работа для разработчика встраиваемых систем
- Удаленная работа для разработчика CRM и ERP