Трекер покупок
Реализуйте трекер, в котором пользователь отслеживает совершенные покупки и потраченные на них суммы.
Продумайте структуру базы данных для хранения пользователей и покупок. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции должны выполняться через AJAX-запросы без перезагрузки страницы.
Основные возможности проекта
- Регистрация и авторизация пользователей.
- Добавление покупок с указанием названия, категории и цены.
- Таблица покупок за сегодня с возможностью редактирования и удаления.
- Просмотр покупок за любой день.
- Просмотр покупок за выбранный период времени.
- Подсчет суммарной стоимости покупок.
- Сумма за конкретную категорию продуктов.
- Каждый пользователь видит только свои данные.
Регистрация и авторизация
На сайте должна быть реализована регистрация и авторизация пользователей:
- Регистрация - форма с полями: логин, email, пароль.
- Авторизация - форма с полями: логин, пароль.
- Каждый пользователь видит только свои данные.
- Все операции выполняются без перезагрузки страницы.
Главная страница
На странице должны быть размещены:
- Форма для добавления новой покупки (название, категория, цена).
- Таблица покупок за сегодня.
- Блок с суммарной стоимостью покупок за сегодня.
- Кнопки для переключения на другие дни (стрелки вперед/назад).
- Выбор периода для просмотра истории.
Добавление покупки
Форма добавления покупки содержит:
- Название продукта (инпут).
- Категория (выпадающий список: продукты, транспорт, развлечения, одежда, другие).
- Цена (инпут, число).
- Кнопка "Добавить".
При добавлении покупка сохраняется на сервере с текущей датой и временем. Все операции выполняются без перезагрузки страницы.
Таблица покупок
В таблице отображаются покупки за выбранный день. Каждая запись должна содержать:
- Название продукта.
- Категория.
- Цена.
- Время добавления.
- Кнопки: редактировать, удалить.
Просмотр истории
Пользователь может просматривать покупки:
- За сегодня (по умолчанию).
- За любой день (с помощью стрелок переключения дней).
- За выбранный период времени (выбор даты начала и конца).
Данные загружаются с сервера без перезагрузки страницы.
Суммарная стоимость
При просмотре покупок снизу таблицы выводится:
- Общая сумма покупок за выбранный день или период.
- Сумма по каждой категории (при просмотре за период).
Взаимодействие с сервером
Все операции выполняются через AJAX-запросы:
- При загрузке страницы данные (покупки) загружаются с сервера.
- При добавлении, редактировании, удалении покупки данные отправляются на сервер, после успешного ответа обновляется интерфейс.
- При переключении дня или периода данные загружаются с сервера без перезагрузки страницы.
Дополнительные возможности
- Экспорт данных в CSV.
- Поиск покупок по названию.