10000 GitHub - n1k1ta42/finance-hub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

n1k1ta42/finance-hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Finance Hub

License React Go TypeScript

Finance Hub Logo

Современная платформа для управления личными финансами с открытым исходным кодом

🔗 Полезные ссылки

📋 О проекте

Finance Hub — это полнофункциональное приложение для управления личными финансами, которое помогает пользователям контролировать свои доходы и расходы, планировать бюджет, анализировать финансовые привычки и достигать финансовых целей. Созданное с использованием современных технологий, приложение предоставляет понятный интерфейс и богатый функционал для управления финансами.

✨ Возможности

  • Авторизация и управление аккаунтом:

    • Безопасная система регистрации и входа
    • Восстановление пароля
    • Управление профилем пользователя
    • История входов для безопасности
  • Отслеживание транзакций:

    • Добавление, редактирование и удаление доходов и расходов
    • Детальное описание и категоризация
    • Удобная фильтрация и поиск
    • Массовое добавление транзакций
    • Создание транзакций через Telegram-бот
    • Регулярные платежи (Premium/Pro): автоматическое создание повторяющихся транзакций с настраиваемой частотой
  • Telegram-бот для создания транзакций:

    • Быстрое добавление транзакций прямо из мессенджера
    • Удобный выбор категорий через интерактивные кнопки
    • Простая привязка бота к аккаунту через ID в профиле
    • Доступ к Telegram-боту: @Finance_hub_app_bot
  • Регулярные платежи (Premium и Pro):

    • Автоматическое создание повторяющихся транзакций
    • Поддержка различных частот: ежедневно, еженедельно, ежемесячно, ежегодно
    • Настройка даты начала и окончания действия правила
    • Возможность создания бессрочных регулярных платежей
    • Управление активностью правил без удаления
    • Автоматическая обработка в фоновом режиме каждый час
    • Полный контроль: редактирование, приостановка, удаление правил
  • Бюджетирование:

    • Создание и управление бюджетами по категориям
    • Поддержка различных периодов (еженедельно, ежемесячно, ежегодно)
    • Отслеживание прогресса и оставшихся средств
    • Уведомления о превышении бюджета
  • Детальная статистика:

    • Визуализация финансовых данных с помощью интерактивных графиков
    • Анализ расходов и доходов по категориям
    • Динамика баланса за выбранный период
    • Экспорт статистики в PDF (Premium и Pro подписки)
  • Категории:

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

    • Создание и управление финансовыми проектами
    • Отслеживание прогресса накоплений на цели
    • Различные типы проектов (накопления, кредиты, депозиты)
    • История платежей и пополнений
    • Визуализация прогресса достижения целей
  • Инвестиции:

    • Управление инвестиционным портфелем
    • Отслеживание различных типов инвестиций (акции, облигации, криптовалюта)
    • Расчет доходности и прибыли/убытка
    • История операций и капитализации
    • Аналитика по инвестиционным инструментам
  • Подписки:

    • Система уровней доступа (Basic, Premium, Pro)
    • Разные периоды подписки (месячная, годовая, пожизненная)
    • Разграничение функционала по уровням подписки
    • Управление оплатами и счетами
  • Уведомления и оповещения:

    • Системные уведомления о важных событиях
    • Напоминания о платежах и бюджетах
    • Управление настройками оповещений
    • Оповещения в интерфейсе приложения
  • Платежи:

    • Отслеживание регулярных платежей
    • История всех платежей
    • Управление способами оплаты
    • Контроль статуса платежей
  • Поддержка пользователей:

    • Встроенная система обратной связи
    • Отзывы и предложения по улучшению
    • Приоритетная поддержка для Pro-пользователей
  • Адаптивный дизайн:

    • Работает на всех устройствах - от мобильных до десктопных
    • Интуитивно понятный интерфейс
    • Поддержка тёмной темы

🛠️ Технологии

Фронтенд

  • React 19 с TypeScript 5
  • TanStack Router для маршрутизации
  • TanStack Form для управления формами
  • TanStack Query для работы с данными и кэширования
  • TanStack Table для работы с таблицами
  • Tailwind CSS и shadcn/ui для стилизации
  • Recharts для построения графиков и диаграмм
  • Lucide для иконок
  • date-fns для работы с датами
  • React Hook Form и zod для валидации форм
  • axios для выполнения HTTP-запросов

Бэкенд

  • Go с фреймворком Fiber
  • GORM для работы с базой данных
  • JWT для аутентификации
  • PostgreSQL для хранения данных
  • Air для горячей перезагрузки в разработке
  • Telegram Bot API для интеграции с мессенджером

Инфраструктура

  • Docker и docker-compose для контейнеризации
  • Nginx в качестве веб-сервера
  • Vite для сборки фронтенда
  • GitHub Actions для CI/CD:
    • Автоматическое тестирование и линтинг при Pull Request
    • Непрерывная интеграция и деплой при пуше в основную ветку
    • Сборка Docker-образов и публикация на Docker Hub
    • Автоматический деплой на VPS
    • Регулярное обслуживание и мониторинг сервера

🚀 Начало работы

Предварительные требования

  • Node.js 18+
  • Go 1.18+
  • PostgreSQL
  • Docker и docker-compose (опционально)

Установка и запуск

  1. Клонируйте репозиторий:
git clone https://github.com/n1k1ta42/finance-hub.git
cd finance-hub
  1. Настройка и запуск бэкенда:
cd backend
go mod download
cp env.example .env  # Настройте переменные окружения
go run main.go

Или с использованием Air для горячей перезагрузки:

air
  1. Настройка и запуск фронтенда:
cd web
yarn install
cp env.example .env  # Настройте переменные окружения
yarn dev
  1. Запуск с использованием Docker:
docker-compose up -d
  1. Или загрузка и запуск готовых образов с Docker Hub:
docker-compose pull
docker-compose up -d
  1. Откройте браузер и перейдите по адресу http://localhost:3001

Автоматический деплой

Проект настроен для автоматического деплоя на VPS с помощью GitHub Actions:

  1. При пуше в ветки main или master автоматически собираются Docker-образы и публикуются в Docker Hub
  2. После успешной публикации образов автоматически запускается деплой на VPS
  3. На VPS выполняется скачивание новых образов и перезапуск контейнеров

Для настройки автоматического деплоя необходимо добавить следующие секреты в репозиторий:

  • VPS_HOST - IP-адрес или доменное имя VPS
  • VPS_USERNAME - имя пользователя для SSH-доступа
  • VPS_SSH_KEY - приватный SSH-ключ
  • VPS_PORT - порт SSH (опционально)

Подробные инструкции по настройке автоматического деплоя можно найти в .github/README.md.

Telegram-бот для добавления транзакций

Для использования Telegram-бота выполните следующие шаги:

  1. Найдите бота @Finance_hub_app_bot в Telegram
  2. Отправьте команду /start
  3. Получите ваш уникальный ID чата
  4. Добавьте этот ID в разделе "Профиль" в веб-приложении
  5. Теперь вы можете создавать транзакции прямо из Telegram, используя удобные кнопки или команду /add

Развертывание на собственном сервере

Для развертывания приложения на собственном сервере мы подготовили подробную инструкцию:

Эта документация содержит:

  • Системные требования для различных сценариев использования
  • Настройку базовой системы
  • Установку Docker и Docker Compose
  • Настройку Firewall и безопасности
  • Подключение доменного имени
  • Настройку SSL-сертификатов
  • Конфигурацию CI/CD с использованием GitHub Actions

Рекомендуемые системные требования

Для production-окружения рекомендуется:

  • CPU: 4+ vCPU
  • RAM: 4+ ГБ
  • Диск: 40+ ГБ SSD
  • ОС: Debian 11+

🔒 Безопасность

Finance Hub уделяет особое внимание безопасности пользовательских данных:

  • Шифрование критически важных данных
  • Безопасное хранение паролей (bcrypt)
  • JWT-аутентификация с перезагрузкой токенов
  • Защита от основных уязвимос A099 ей (CSRF, XSS, SQL-инъекции)
  • Отслеживание истории авторизации
  • Возможность сбросить пароль и защитить аккаунт

📊 Модель подписок

Finance Hub предлагает три уровня подписки:

Basic (Бесплатный)

  • До 5 категорий
  • До 100 транзакций
  • Базовая статистика

Premium

  • Неограниченное количество категорий
  • До 1000 транзакций
  • Расширенная статистика
  • Бюджетирование
  • Цена: 199.99₽/месяц или 1799.99₽/год или 3599.99₽ пожизненно

Pro

  • Неограниченное количество категорий
  • Неограниченное количество транзакций
  • Расширенная статистика
  • Бюджетирование
  • Экспорт данных
  • Приоритетная поддержка
  • Цена: 999.99₽/месяц или 8999.99₽/год или 17999.99₽ пожизненно

Важно: В настоящий момент функционал подписок работает в тестовом режиме. Вы можете протестировать любой план без реального списания средств. В будущем мы планируем запустить полноценную систему платных подписок для финансирования проекта без рекламы.

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

Для запуска тестов используйте следующие команды:

Бэкенд

cd backend
go test ./...

Фронтенд

cd web
yarn test

E2E тесты

yarn e2e

🤝 Как внести вклад

Мы приветствуем вклады от сообщества! Если вы хотите внести свой вклад в проект:

  1. Форкните репозиторий
  2. Создайте ветку для вашей функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'feat: добавлена новая функция')
  4. Отправьте в свой форк (git push origin feature/amazing-feature)
  5. Откройте Pull Request

Пожалуйста, ознакомьтесь с нашим руководством по вкладу для получения дополнительной информации.

📝 Планы развития

  • Интеграция с банковскими API для автоматического импорта транзакций
  • Мобильные приложения для iOS и Android
  • Поддержка нескольких валют и конвертация
  • Финансовые цели и отслеживание сбережений
  • Расширенные отчеты и прогнозирование
  • Поддержка мультиязычности

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения дополнительной информации.

📞 Контакты


Сделано с ❤️ в России

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

0