Сервис знакомств (Django)
Цена договорная
•
наличный расчёт, безналичный расчёт, электронные деньги
Привет. Приглашаю программиста, поработать над пректом "OneDayLunch".
Суть:
Суть проекта - копия зарубежного проекта Tinder (или BangWIthFriends). С той лишь разницей, что там Mobile, у меня Web. Идея проста, людям показывают других людей, и они не могут начать переписываться пока каждый не лайкнет другого. Причем, когда вам показывают людей, неизвестно кто тебя лайкнул, а кто нет. Завершен этап дизайна, и стартую верстку (адаптивная), хорошо если программист присоединиться на 75% готовности верстки, чтобы можно было что-то переделать или сделать правильнее для интеграции backend.
Основные моменты вашей работы:
1. Сортировка людей.
Существуют два условия сортировки людей: сортировка по географичесой близости и неповторение. И вот здесь появляется первая сложность. Какой выбрать алгоритм выборки людей. Первое, что пришло в голову это Last Id, но так много пропусков. Допустим всего 10 пользователей id 1…10 в гео сортировке они расположились так 1,7,2. Допустим пользователь посмотрел второго с id 7 и вышел, ему backend записал что последний просмотренный - id 7, значит начинать в следующий раз с 7-го. А как же 2…6 .
Есть мнение, что (будет работать медленно):
select * from users where
aptitude = $aptitude and latitude = $latitude \\ гео-координаты
and user_id not in (select * from users_canceled) \\ и не те которые не понравились
order by aptitude, latitude desc limit 1 \\ и следующий, который поближе
Есть аналогичное мнение, что:
На первых порах SQLDB вполне справится с задачей. Оптимизировать запрос по стоимости, насоздавать индексов.
Думаю, так же можно посмотреть в сторону NOSQL, при условии что там у вас есть опыт.
2. Чат.
Чат между людьми (личная переписка). Понравились люди друг другу, и давай переписываться) может быть много комнат и может быть много сообщений. Возможно для этой задачи как нельзя лучше подойдет tornado ?
3. Мультиязычность.
Мультиязычность интерфейса и почтовых уведомлений. Переключение языка в настройках профиля. Вы делаете заготовку po файл, я вношу перевод.
4. Регистрация.
Для участия в жизни сайта обязательна регистрация. Варианты: email, facebook, vkontakte. При регистрации из социальной сети необходимо запросить email, ФИО, дата рождения, пол, фотографии профиля.
Каждый аккаунт имеет email, если социальная сеть не дает такой возможности, запросить email и пароль при возвращении на сайт.
5. Более маленькие функциональные части. Но так же требующие описания:
Почтовые уведомления, думаю имеет смысл делать при помощи celery.
Белой нитью сквозь весь сайт проходит гео-координаты, гео-расположение и показ контента в соответствии с ними.
Там где это возможно кэш и оптимизация.
Основные страницы:
- Войти\Регистрация.
- Список людей - здесь и происходит волшебство, лайк или не лайк.
- Список симпатий - список людей с кем симпатии совпали.
- Чат с человеком.
- Редактировать профиль
- Главная страница форума
- Создание сообщения в форум
- Просмотр темы форума
Рабочий процесс:
Мы договариваемся на сроки\стоимость, делим стоимость на части и по мере реализации функционала я вам перечисляю любым удобным способом. В вашем распоряжении будет настроенный сервер и приватный репозитарий на bitbucket.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.