FinanceApp - это консольное приложение для управления личными финансами, написанное на Java. Приложение позволяет пользователям регистрироваться, входить в систему, отслеживать доходы и расходы, устанавливать бюджеты по категориям и анализировать финансовую статистику.
- Регистрация новых пользователей
- Вход в систему
- Выход из системы
- Проверка уникальности имени пользователя
- Валидация учетных данных
- Добавление доходов с указанием категории
- Добавление расходов с указанием категории
- Установка бюджетов по категориям расходов
- Отслеживание оставшегося бюджета
- Уведомления о превышении бюджета
- Просмотр общих доходов и расходов
- Анализ доходов по категориям
- Анализ расходов по категориям
- Отслеживание оставшегося бюджета по категориям
- Предупреждения о превышении расходов над доходами
- User - пользователь системы
- Wallet - кошелек пользователя (транзакции и бюджеты)
- Transaction - транзакция (доход/расход)
- UserService - управление пользователями и аутентификацией
- FinanceService - управление финансовыми операциями
- UserNotFoundException - пользователь не найден
- InvalidCredentialsException - неверные учетные данные
- UserServiceTest - тестирование функциональности пользователей
- FinanceServiceTest - тестирование финансовых операций
- Java 17 или выше
- Maven 3.6 или выше для сборки проекта
mvn clean compileЧерез Maven:
mvn exec:java -Dexec.mainClass="financeapp.FinanceApp"Для запуска тестов выполните:
mvn test- Запустите приложение
- Зарегистрируйте нового пользователя или войдите в систему
- Используйте главное меню для:
- Добавления доходов и расходов
- Установки бюджетов по категориям
- Просмотра статистики
- Следите за уведомлениями о превышении бюджета и расходов над доходами
- Валидация данных - проверка положительных сумм, уникальности пользователей
- Разделение ответственности - четкое разделение между моделями, сервисами и исключениями
- Обработка ошибок - информативные сообщения об ошибках для пользователя
- Расширяемость - модульная архитектура позволяет легко добавлять новую функциональность
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