Современный сервис сокращения ссылок с генерацией QR-кодов и поддержкой доменов на разных языках (включая кириллицу).
Полностью готов к продакшен-развёртыванию с Docker.
Архитектура: React + Spring Boot + Redis
Лёгкий. Быстрый. Удобный.
| Функция | Описание |
|---|---|
| Сокращение ссылок | Работает для всех URL, включая кириллицу |
| Поддержка Emoji/Unicode/Punycode | кейта.рф → xn--80ajmc6b.xn--p1ai |
| Генерация QR-кода | Сразу после сокращения |
| Встроенная защита от спама | Ограничение по времени + проверка пустых запросов |
| Автоматическое добавление протокола | Не нужно вводить http/https |
| Переключение темы | Светлая / Тёмная |
| Оптимизация UI | Полностью центрированный адаптивный интерфейс |
| Docker-поддержка | Бэкенд + фронтенд + Redis в 1 команду |
- Docker 🐳
- Docker Compose
git clone https://github.com/keitah/shortlink-qr-service.git
cd shortlink-qr-service
docker compose up --buildFrontend http://localhost:3000
Backend API http://localhost:8080
Redis port 6379 внутри Docker-сети
(📌 Redis используется как хранилище пары shortCode → originalUrl + metadata.)
Компонент Технология
Frontend React + Vite + Tailwind CSS
Backend Java 21 + Spring Boot 3
Cache DB Redis
Image Encoding Base64 QR Codes
Deployment Docker + Docker Compose
Метод Путь Назначение
POST /api/shorten Создать короткую ссылку
GET /{shortCode} Перенаправление на оригинальный URL
Формы блокируются на 10 секунд после отправки
Отправка пустых строк запрещена
Невалидные URL обрабатываются и нормализуются
Сайт адаптивный, минималистичный:
Центральный layout
Кнопка копирования
Переключатель тёмной/светлой темы 🌗
QR-код отображается в результатах
shortlink-qr-service/
├── backend/ # Spring Boot + Redis
├── frontend/ # React + UI
├── docker-compose.yml
├── README.md
└── good-info.md
История переходов
Авторизация и свои персональные ссылки
Счётчики просмотров и статистика
И многое другое...