Skip to content

Latest commit

 

History

History
92 lines (71 loc) · 4.02 KB

File metadata and controls

92 lines (71 loc) · 4.02 KB

🔗 ShortLink + QR Service

Современный сервис сокращения ссылок с генерацией QR-кодов и поддержкой доменов на разных языках (включая кириллицу). Сайт ShortLink+QR Service Полностью готов к продакшен-развёртыванию с Docker.
Архитектура: React + Spring Boot + Redis
Лёгкий. Быстрый. Удобный.


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

Функция Описание
Сокращение ссылок Работает для всех URL, включая кириллицу
Поддержка Emoji/Unicode/Punycode кейта.рф → xn--80ajmc6b.xn--p1ai
Генерация QR-кода Сразу после сокращения
Встроенная защита от спама Ограничение по времени + проверка пустых запросов
Автоматическое добавление протокола Не нужно вводить http/https
Переключение темы Светлая / Тёмная
Оптимизация UI Полностью центрированный адаптивный интерфейс
Docker-поддержка Бэкенд + фронтенд + Redis в 1 команду

🛠 Запуск через Docker

📍 Требования:

  • Docker 🐳
  • Docker Compose

🚀 Команды для запуска

git clone https://github.com/keitah/shortlink-qr-service.git
cd shortlink-qr-service
docker compose up --build

📋 После запуска:

Frontend	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

🔀 API Endpoints

Метод Путь Назначение
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

🧩 Что ещё можно добавить?

История переходов
Авторизация и свои персональные ссылки
Счётчики просмотров и статистика
И многое другое...

❤️ Спасибо за интерес к проекту!

Готов к продакшен-деплою и дальнейшему развитию 🚀