sp-sb

0

Описание

Языки

  • Java62,7%
  • HTML35,5%
  • JavaScript1,3%
  • CSS0,5%
3 года назад
3 года назад
2 года назад
2 года назад
2 года назад
3 года назад
3 года назад
2 года назад
README.md

Spendings

Это приложение было написано в учебных целях. Использованы Spring Boot, Spring Security, Spring Data JPA, Hibernate, REST, JavaScript, Bootstrap, PostgreSQL, JUnit, Maven, SLF4J, Bean Validation

Идея написания пришла от таблицы excel, в которую мы заносили свои ежедневные траты с разбиением по месяцам. Эта таблица хранилась на домашнем компьютере, что доставляло неудобства, и хотелось, чтобы она была всегда под рукой. Оттуда же достались и захаркоженные типы трат (пока без возможности создания своего набора типов трат). Так же предыдущая упрощённая версия приложения позволяла экспортировать данные в файл excel в том же формате и внешнем виде, как это было в оригинальном файле.

Текущие возможности приложения:\

  1. Все данные хранятся в локальной БД Postgres;
  2. Все пользователи разделены по ролям: ADMIN, USER, SUPERUSER. Все новые зарегистрированные пользователи имеют роли USER и SUPERUSER;
  3. ADMIN может создавать, изменять и удалять пользователей;
  4. Регистрация пользователя с подтверждением регистрации и возможностью восстановить пароль по e-mail. Пароли хранятся в базе в зашифрованном виде;
  5. Вывод трат осуществляется помесячно. Стартовый день месяца можно задать. Траты в таблице упорядочены по дате;
  6. Траты выводятся в главную таблицу в столбцы по типам. Для некоторых типов отображается описание траты;
  7. В верхней строке каждой колонки отображается сумма трат за месяц. Также отображается сумма всех трат за текущий период;
  8. Можно перейти в колонку каждого типа трат, где будет отображено больше информации;
  9. Траты заносятся либо на отдельной странице с заполнением необходимых полей, либо прямо в таблице в специально предусмотренные для этого две верхние строки. Нельзя занести "0", дробное или строковое значение;
  10. Можно удалять и редактировать траты;
  11. Пользователи могут объединяться в группы. Для этого пользователи могут отправлять приглашения со следующими ограничениями:
    • Отправлять приглашения может только SUPERUSER;
    • После принятия приглашения роль SUPERUSER слетает и устанавливается стартовый день месяца приглашающего;
    • Нельзя отравить приглашение пользователю, состоящему в другой группе;
    • Нельзя иметь суммарное количество друзей и отправленных приглашений более 5 (на текущий момент);
  12. При приёме приглашения вступить в группу все отправленные и полученные приглашения удаляются;
  13. Пользователи могут просматривать и удалять свои отправленные и полученные приглашения;
  14. В группе можно:
    • Полный доступ к тратам членов группы, но принадлежность траты изменить нельзя;
    • Устанавливать цвет траты для каждого пользователя группы;
    • Удалиться из группы. При этом SUPERUSER восстанавливается;
    • Только для SUPERUSER:
      • Отправлять приглашения для вступления в группу;
      • Удалять пользователей;
      • Менять роли пользователей (убирать или восстанавливать SUPERUSER);
      • Удалить группу – у всех пользователей восстановится SUPERUSER, все пользователи будут видеть только свои траты;
      • Удалиться из группы. При этом, если в группе не остаётся SUPERUSER, то эта роль восстанавливается у первого;
      • Установить в группе единое число начала месяца;