РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
57 of 77 menu

Лист желаний

Реализуйте сайт "Лист желаний", в котором пользователь может составлять список желаемых подарков на день рождения.

Продумайте структуру базы данных для хранения пользователей, подарков, друзей и уведомлений. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции по чтению данных (вывод списка желаний, друзей, подарков) должны выполняться через SSR для индексации поисковиками. Все операции по записи (добавление, редактирование, удаление подарков, добавление друзей, отметка подарков) - через AJAX-запросы без перезагрузки страницы.

Основные возможности проекта

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

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

На сайте должна быть реализована система регистрации и авторизации пользователей:

  • При регистрации пользователь должен указать ФИО, email, пароль и дату рождения.
  • Авторизация по email и паролю.
  • Восстановление пароля через email.
  • Валидация всех полей на стороне сервера.
  • Профиль пользователя с возможностью редактирования данных.

Лист желаний (SSR + AJAX)

Лист желаний представляет собой список подарков, которыми пользователь может управлять. Страница со списком желаний генерируется на сервере (SSR) для индексации поисковиками. Операции по записи выполняются через AJAX.

  • Каждый подарок должен содержать название и при необходимости комментарий.
  • Возможность добавлять подарки (название, описание, ссылка на товар, категория, приоритет, ориентировочная цена) - через AJAX.
  • Возможность редактировать существующие подарки - через AJAX.
  • Возможность удалять подарки - через AJAX.
  • Сортировка подарков по приоритету, категории или дате добавления.
  • Категории подарков (книги, техника, одежда, хобби, путешествия, спорт, косметика, другое).

Добавление друзей (AJAX)

На сайте должна быть реализована система добавления друзей по ссылке-приглашению:

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

Друзья (SSR)

В профиле пользователя отображается список его друзей. Страница генерируется на сервере (SSR):

  • Имя и фамилия друга.
  • Дата рождения друга.
  • Количество дней до дня рождения.
  • Ссылка на лист желаний друга.
  • Количество подарков в списке желаний друга.
  • Кнопка для удаления из друзей.

Подарки (AJAX)

Друзья пользователя могут просматривать его лист желаний и отмечать подарки. Все операции выполняются через AJAX:

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

Напоминания

Сайт должен автоматически напоминать пользователю о днях рождения друзей:

  • Напоминание выдается за 14, 7, 1 день и в день рождения друга.
  • Напоминания выводятся на главной странице после авторизации.
  • Напоминания можно отправлять на email.
  • В напоминании указывается имя друга и количество оставшихся дней.

Взаимодействие с сервером

Гибридный подход:

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

Дополнительные возможности

  • Возможность загружать фото для каждого подарка.
  • Возможность указывать магазин или сайт, где можно приобрести подарок.
  • Поиск друзей по имени и фамилии.
  • Публичный профиль со списком желаний (по ссылке).
  • Статистика: сколько подарков уже занято, сколько свободно.
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить