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

Трекер взвешивания

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

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

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

  • Регистрация и авторизация пользователей.
  • Инпут для ввода текущего веса.
  • Сохранение веса для текущего дня.
  • Построение графиков веса на canvas за неделю, месяц, год, заданный период, все время.
  • Каждый пользователь видит только свои данные.

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

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

  • Регистрация - форма с полями: логин, email, пароль.
  • Авторизация - форма с полями: логин, пароль.
  • Каждый пользователь видит только свои данные.
  • Все операции выполняются без перезагрузки страницы.

Главная страница

На странице должны быть размещены:

  • Инпут для ввода веса (число).
  • Кнопка "Сохранить вес".
  • Блок с текущим весом (последнее сохраненное значение).
  • Выбор периода для графика (неделя, месяц, год, заданный период, все время).
  • Canvas для отображения графика.

Ввод веса

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

Текущий вес

На странице отображается последнее сохраненное значение веса и дата, когда оно было сохранено.

Графики

Сайт строит графики веса на canvas для разных периодов:

  • За неделю - последние 7 дней.
  • За месяц - текущий месяц.
  • За год - текущий год.
  • За заданный промежуток времени - выбор даты начала и конца.
  • За все время - с первой записи.

Отрисовка графика

График должен содержать:

  • Ось X - даты.
  • Ось Y - значения веса.
  • Линия, соединяющая точки с значениями веса.
  • Точки на линии с числовыми значениями.

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

Все операции выполняются через AJAX-запросы:

  • При загрузке страницы записи веса загружаются с сервера.
  • При сохранении веса данные отправляются на сервер, после успешного ответа обновляется интерфейс.
  • При выборе периода данные для графика загружаются с сервера без перезагрузки страницы.

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

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