Система биллинга для интернет-провайдера с веб-интерфейсом для клиентов.
- Go 1.26 - серверная часть
- Chi - HTTP router
- FirebirdSQL - база данных
- JWT - аутентификация (access/refresh tokens)
- golang-migrate - миграции базы данных
- zap - structured logging
- React 18 + TypeScript
- Vite - сборка
- Tailwind CSS - стилизация
- Zustand - state management
- Framer Motion - анимации
- React Router - маршрутизация
- Lucide React - иконки
- Docker / Docker Compose - контейнеризация
- Nginx - reverse proxy, SSL termination
.
├── backend/ # Go сервер
│ ├── cmd/ # Точки входа (billing, migrator)
│ ├── internal/ # Приватный код
│ │ ├── app/ # Инициализация приложения
│ │ ├── config/ # Конфигурация
│ │ ├── domain/ # Доменные модели и ошибки
│ │ ├── http/ # HTTP handlers и middleware
│ │ ├── lib/ # Утилиты
│ │ ├── models/ # Модели данных
│ │ ├── repository/ # Работа с БД
│ │ └── service/ # Бизнес-логика
│ └── migrations/ # SQL миграции
├── frontend/ # React приложение
│ └── src/
│ ├── api/ # API клиент
│ ├── components/ # UI компоненты
│ ├── pages/ # Страницы
│ ├── services/ # Сервисы
│ ├── stores/ # Zustand stores
│ └── types/ # TypeScript типы
├── deploy/ # Docker Compose конфигурация
└── nginx/ # Nginx конфигурация
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /health |
No | Health check |
| POST | /login |
No | Аутентификация |
| POST | /profile |
No | Регистрация клиента |
| GET | /profile |
Yes | Получение данных профиля |
Backend:
cd backend
cp .env.example .env
make runFrontend:
cd frontend
cp .env.example .env
npm install
npm run devcd deploy
cp .env.example .env
docker-compose up -dFB_HOST=localhost
FB_USER=SYSDBA
FB_PASSWORD=masterkey
FB_NAME=billing.fdb
FB_PORT=3050
ACCESS_SECRET=<jwt-access-secret>
REFRESH_SECRET=<jwt-refresh-secret>
VITE_USE_MOCKS=false
VITE_API_URL=/api
VITE_ENV=development
FB_HOST=firebird-server
FB_USER=SYSDBA
FB_PASSWORD=masterkey
FB_NAME=billing.fdb
FB_PORT=3050
BILLING_ACCESS_SECRET=<jwt-access-secret>
BILLING_REFRESH_SECRET=<jwt-refresh-secret>
VITE_USE_MOCKS=false
VITE_ENV=production
- Аутентификация - вход/регистрация с JWT токенами
- Профиль - управление данными аккаунта (в дальнейшем)
- Контракты - просмотр договоров (в дальнейшем)
- Платежи - история и управление платежами (в дальнейшем)
- Статус сети - мониторинг подключения (в дальнейшем)
- Уведомления - система оповещений (в дальнейшем)
- Тест скорости - проверка пропускной способности (в дальнейшем)
- Поддержка - обращения в техподдержку (в дальнейшем)
Для работы с SSL-сертификатами разместите их в deploy/certs/:
server.crt- сертификатserver.key- приватный ключ