Skip to content

lavren007/financeapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Приложение для управления личными финансами

FinanceApp - это консольное приложение для управления личными финансами, написанное на Java. Приложение позволяет пользователям регистрироваться, входить в систему, отслеживать доходы и расходы, устанавливать бюджеты по категориям и анализировать финансовую статистику.

Функциональность

Аутентификация и авторизация

  • Регистрация новых пользователей
  • Вход в систему
  • Выход из системы
  • Проверка уникальности имени пользователя
  • Валидация учетных данных

Управление финансами

  • Добавление доходов с указанием категории
  • Добавление расходов с указанием категории
  • Установка бюджетов по категориям расходов
  • Отслеживание оставшегося бюджета
  • Уведомления о превышении бюджета

Статистика и аналитика

  • Просмотр общих доходов и расходов
  • Анализ доходов по категориям
  • Анализ расходов по категориям
  • Отслеживание оставшегося бюджета по категориям
  • Предупреждения о превышении расходов над доходами

Архитектура проекта

Модели данных

  • User - пользователь системы
  • Wallet - кошелек пользователя (транзакции и бюджеты)
  • Transaction - транзакция (доход/расход)

Сервисы

  • UserService - управление пользователями и аутентификацией
  • FinanceService - управление финансовыми операциями

Исключения

  • UserNotFoundException - пользователь не найден
  • InvalidCredentialsException - неверные учетные данные

Тестирование

Проект включает комплексные unit-тесты:

  • UserServiceTest - тестирование функциональности пользователей
  • FinanceServiceTest - тестирование финансовых операций

Требования

  • Java 17 или выше
  • Maven 3.6 или выше для сборки проекта

Сборка проекта

mvn clean compile

Запуск приложения

Через Maven:

mvn exec:java -Dexec.mainClass="financeapp.FinanceApp"

Тестирование

Для запуска тестов выполните:

mvn test

Использование

  1. Запустите приложение
  2. Зарегистрируйте нового пользователя или войдите в систему
  3. Используйте главное меню для:
  • Добавления доходов и расходов
  • Установки бюджетов по категориям
  • Просмотра статистики
  • Следите за уведомлениями о превышении бюджета и расходов над доходами

Особенности реализации

  • Валидация данных - проверка положительных сумм, уникальности пользователей
  • Разделение ответственности - четкое разделение между моделями, сервисами и исключениями
  • Обработка ошибок - информативные сообщения об ошибках для пользователя
  • Расширяемость - модульная архитектура позволяет легко добавлять новую функциональность

Структура проекта

financeapp/
├── src/
│   ├── main/
│   │   └── java/
│   │       └── financeapp/
│   │           ├── FinanceApp.java
│   │           ├── model/
│   │           │   ├── User.java
│   │           │   ├── Wallet.java
│   │           │   └── Transaction.java
│   │           ├── service/
│   │           │   ├── UserService.java
│   │           │   └── FinanceService.java
│   │           └── exception/
│   │               ├── UserNotFoundException.java
│   │               └── InvalidCredentialsException.java
│   └── test/
│       └── java/
│           ├── UserServiceTest.java
│           └── FinanceServiceTest.java
├── Readme.md
└── pom.xml

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages