Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Добрый день!

Требуется разработка бэкенда для мобильного приложения. Необходимо разработать серию методов.

При подаче заявки прошу указать сроки и стоимость.

Описание задачи:

1. Разработать класс UserAccount.

Поля:

email,

userId,

isAdmin=0 (признак админской учетки, по умолчанию 0)

username,

attr1.. attr5 (текстовые атрибуты)

creationDate,

String (или Int)  accountStatus (confirmed, not confirmed) статус акка (можно енумом сделать)

Favorits – массив userIds

2. Реализовать методы сохранения, чтения, поиска данных в БД (МонгоДБ), Redis

3. Реализовать веб-сервис используя C# + ServiceStack .

Опубликованные методы:

CreateAccount

Параметры: String email, String key ,String requestDateTime

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

Если валидация прошла успешно и имейла в БД нет то:

Создает новый эккаунт В БД, при этом заполняет поля класса произвольными

(по маске) значениями, возвращает статус OK и данные – сериализованный

в JSON екземпляр класса UserAccount

Если имейл в БД есть, то возвращает статуc Error: AccountExists

Если аккаунт был создан – то присваивает дату создания акканта

(creationDate) и отправляет на почту ссылку для подтверждения эккаунта

В случае ошибки валидации метод возвращает статус Error

 

UpdateAccount

Параметры: userId , JSON объект содержащий пары поле – значение, key , sessionId , requestDateTime

Валидируем входные параметры, проверям корректность ключа и  ИД сессии

В случае если проверка пройдена обновляем запись в БД.

Email и пароль в БД должны храниться в виде соленого хэша

Возвращаем обновленную запись в JSON. (хэши клиенту не возвращаем)

Если проверка не пройдена возвращаем ошибку.

 

Authenticate

Параметры: email, password, key, requestDateTime

Валидируем входные параметры, проверям корректность ключа

Если валидация пройдена – хешируем email , password и проверяем наличие хеша в БД.

Если проверка пройдена  - создаем запись в таблице сессий, возвращаем ID сесии и ИД юзера.

Если проверка не пройдена – возвращаем статус ошибки.

               

ConfirmAccount

Параметры: email, confirmKey, requestDateTime, key

Валидируем входные параметры, проверям корректность ключа

Если валидация пройдена, находим нужную запись в БД  (по email и

confirmKey - userId ) и меняем статус записи (атрибут accountStatus )

на confirmed .

 

UpdateMyLocation

Параметры:  userId, sessionId, key,  requestDateTime , долгота и широта (оба Double)

Проверяем валидность данных, проверяем ключ, проверяем сессию

пользователя, проверяем доступность редиски и наличие записи. Если

запись уже есть – обновляем.

Если проверка прошла успешно, записываем в Redis инфу о юзере.

(https://github.com/ServiceStackApps/redis-geo#servicestackredis-geo-apis)

Названия полей которые попадают в редис, должны настраиваться, например, локальным массивом строк.

Время жизни записи в редисе настраивается локальной переменной.

Если ошибок нет, возвращаем статус ОК, иначе Error и описание ошибки.

 

FindAccsInRadius

Параметры: userId, sessionId, key, requestDateTime, долгота и широта (оба Double), GeoRadius

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

Посылаем в редиску запрос Redis.FindGeoResultsInRadius

Возвращаем массив данных в JSON формате. Названия полей которые попадают

в массив, должны настраиваться, например, локальным массивом

строк(названия полей в массиве)

 

FindAccByAttr

Параметры: userId, sessionId, key, requestDateTime, массив атрибутов со значениями

Может вызываться из админки, админка не генерит кей, если вызывается пользователем с админскими правами – key игнорируем.

Проверяем валидность данных, проверяем ключ, проверяем сессию пользователя, проверяем админ ли пользователь.

Админы могут искать по всем атрибутам, обычные пользователи только по ID .

Возвращаем найденый/ые акк.

В случае ошибки возвращаем статус ошибки.

 

GetAllUsers

Параметры: userId, sessionId, key,  requestDateTime, fromNumber, toNumber

Может вызываться из админки, админка не генерит кей, если вызывается пользователем с админскими правами – key игнорируем

Проверяем валидность данных, проверяем ключ, проверяем сессию пользователя

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

В случае ошибки валидации или если пользователь не админ возвращаем ошибку.

 

AddGhost

Параметры userId, sessionId, requestDateTime, timeToLive, массив атрибутов

Может вызываться из админки, админка не генерит кей, если вызывается пользователем с админскими правами – key игнорируем

Проверяем валидность данных, проверяем ключ, проверяем сессию пользователя, проверяем что пользователь админ.

Если проверки пройдены, добавляем запись в Redis .Время жизни записи

определяется входным параметром tuimeToLive . Возвращаем OK если нет

ошибок иначе Error

7 лет назад
pozitivist
40 летСША
11 лет в сервисе
Был
18 дней назад
  • Похожие заказы
  • $50

    Здравствуйте! Нужна программа для проверки мобильных номеров на наличие в мессенджерах Telegram/Whatsapp/Viber. Иными словами, чекер. Принцип работы программы: загружаем n-ное количество телефонных номеров, программа в текстовом файле выдает только те, которые зарегистрированы в мессенджерах. Программа должна ...

    Закрыт
    7 лет назад
  • Здравствуйте, нужна помочь в разработке программы на C#. Есть сайт с онлайн трансляцией веб-камер, подключение к камере происходит через Flash(rtmp я так понимаю). Мне нужно добавить swf на форму программы, и подключиться через нее к ...

    Закрыт
    7 лет назад
  • Hужно pазpабoтать шифрoвaльщик дaнныx oпpeдeлeннoго фоpмaтa. Eсть дaнныe вeктoрные фaйлы **.ai  **.jpg **.tif  **max   Нужно чтоб ecли эти данныe попaли в чужиe руки зaпуcкался процеcc шифрoвaнии и c данными нe вoзможнo былo pабoтaть.   Если данные ...

    Закрыт
    7 лет назад
  • $50

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

    Закрыт
    7 лет назад
  • $500

    Коллеги, приветствую! Есть задача по опеределению активного окна и его названия (хендела). Собственно, это все. Если что, есть в открытом доступе примеры, их довольно много, на всякий случай выложу несколько: [url=http://www.cyberforum.ru/csharp-net/thread107575.html]http://www.cyberforum.ru/csharp-net/thread107575.html[/url]  [url=http://www.cyberforum.ru/win-api/thread107702.html]http://www.cyberforum.ru/win-api/thread107702.html http://www.cyberforum.ru/win-api/thread664016.html[/url]

    Прикладное ПО1 исполнитель
    Завершен
    7 лет назад
  • Нужно написать универсальную читалку для всех типов расширений электронных книг (pdf, fb2, epub, djvu, doc, rtf, txt и так далее). Необходимая совместимость: Windows XP-10/Mac OS все версии. Есть некоторые требования по функционалу. Обсуждение и подробное ТЗ в ЛС. Оставляйте ...

    Закрыт
    7 лет назад
  • Нужно написать программу для правки скачанного сайта прогой Teleport Pro . Смысл проги такой: Я выкачиваю сайт с помощью проги Teleport Pro. Я получаю папку с исходниками сайта (css, html , images и тд). Но ...

    Закрыт
    7 лет назад