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