Небольшая партнерка

40 000 руб. за проект • электронные деньги
01 октября 2018, 21:50 • 6 откликов • 138 просмотров
Общее описание.

Файловая партнерка представляет систему по монетизации загрузочного трафика. Общая схема выглядит следующим образом
У вебмастера есть посещаемый сайт с которого юзеры что-то скачивают (софт, фильмы и т.д.).
Вебмастер регистрируется в нашей системе и получает код.
Заменяет все ссылки на файлы нашими
Юзеры скачивают наш загрузчик который ставит дополнительный софт + скачивает нужный юзеру файл.
Вебмастер получает деньги за каждый инсталл

ТЗ
Общие страницы

Главная страница на которой будет описание системы, взять какой то готовый лэндинг, не заморачиваться.
Страница FAQ - здесь будут вопросы/ответы
Страница вебмастеру - здесь будет более подробное описание для вебмастеров
В меню указать ссылки на страницы логина и регистрации

Регистрация/авторизация

Страница регистрации вебмастера. Выводим форму с такими полями:
Имя
Email
Пароль
Ссылка на сайт
Данные для входа в публичную статистику (опциональное поле)
Сначала пишем что для продолжения регистрации юзер должен подтвердить владение сайтом. Для этого сайт должен отдать 200 http статус код при обращении к {site}/{уникальная строка}.txt. Если наш сервер подтверждает этот урл регистрируем юзера.
Все поля кроме данных для публичной статистики обязательны к заполнению, если поле не заполнено ниже подсвечиваем ошибку. Если вебмастер не подтвердил владение сайтов, выводим сообщение об ошибке и не даем проходить регистрацию.
Далее шлем ему на емейл приветствие, там указываем что он пока на модерации и после ее прохождения получит уведомление. Так же отправляем на админский емейл уведомление, админский емейл указывается в конфигурации приложения (.env).
Когда регистрация завершена редиректим на страницу с информацией, что он принят на модерацию и в ближайшее время мы с ним свяжемся.

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

Кабинет вебмастера

Страница с общей статистикой инсталлов. Выводим таблицу за последние 10 дней с такими полями: дата, гео, количество учтенных инсталлов, сумма. Все суммы по системы проводим в рублях. Внизу выводим пагинацию. Данные подргужаем в таблицу аяксом. Время загрузки страницы не более 500ms. Вывод статистики не должен выполнять агрегационных запросов в бд, данные уже должны быть готовы.
Страница выплат. Выводим таблицу со списком выплат + кнопку создать новую. В таблице такие поля: Дата, сумма, платежные данные (пока разрешаем выплаты только в биткоинах), статус выплаты. Создание выплаты только при балансе более 1000 рублей. При создании выплаты деньги сразу списываются в пользу выплаты (чтобы нельзя было вывести больше чем есть).
Страница интеграции нашего кода. 2 варианта интеграции
Вебмастер все ссылки на скачивание файла заворачивает в ссылки на наш сайт в следующем виде http://{адрес нашего технического домена}/download/{base64 абсолютного урла к файлу который нужен юзеру}?title=название файла
Вебмастер все ссылки на скачивание файла заворачивает в ссылки на наш сайт в следующем виде http://{адрес нашего технического домена}/show-download/{base64 абсолютного урла к файлу который нужен юзеру}?title=название файла. В этом случае юзеру будет показана страница для скачивания файла на нашем домене.

API
При переходе по урлу вида http://{адрес нашего технического домена}/download/{base64 абсолютного урла к файлу который нужен юзеру}/{base64 от ид вебмастера}?title=название мы проверяем был ли инсталл с этого ip за последний месяц, если был мы кидаем сразу юзера на скачивание исходного файла, если нет мы фиксируем привязку этого ip к этому файлу на 1 час и отдаем юзеру наш загрузчик. Привязываем base64 от {абсолютный путь до файла;имя файла} к ид вебмастера.
http://{адрес нашего технического домена}/show-download/{base64 абсолютного урла к файлу который нужен юзеру}/{base64 от ид вебмастера}?title=название файла делаем такие же проверки как и в пункте один, только вместо отдачи нашего загрузчика редиректим дальше юзера на другой урл по которму будет страница с кнопкой скачать файл. Привязываем base64 от {абсолютный путь до файла;имя файла} к ид вебмастера.
При обращении к урла /get-file сервер отдает base64 от {абсолютный путь до файла;имя файла} которые ассоциированы с текущим IP.
По урлу /finish/{абсолютный путь до файла;имя файла} проверяем был ли инсталл с этого ip ранее в этом месяце, если нет то учитываем инсталл и засчитываем его получая ид вебмастера по ключу {абсолютный путь до файла;имя файла} (ранее мы его запомнили).

Админка
Страница со списком юзеров. Колонки : email, урл до сайта, статус (активен/неактивен), ссылка на просмотр статистики по инсталлам (выводим так же как и в кабинете вебмастера).
Страница со списком выплат. Сначала выводим выплаты со статусом “ожидают утверждения”, далее все остальные. Колонки таблицы: дата создания, сумма, емейл вебмастера. Выплату можно подтвердить, отклонить.
Страница со списком тарифов. Выводим таблицу с колонками гео и сумма за инсталл. Можно создать новую запись и отредактировать существующую. Выплаты учитываются в момент начисления, после изменения тарифа сумма у вебмастеров не меняется. Плюс есть возможность задать дефолтную стоимость для гео которые не указаны здесь.
Экран общей статистики. Выводим таблицу с датой, гео, суммарное количество инсталлов. Вверху выводим простой график с разбивкой по датам и группировкой по гео. То есть по оси x идут даты, по оси y идет количество инсталлов и линии гео.

В качестве фреймворка необходимо использовать Symfony 4 или последний Laravel, PHP версии 7.2 и MySQL. Все что касается дизайна нужно выполнить в первой версии на основе css фреймворка bootstrap, верстка дизайна будет отдельным заданием.

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