Полнофункциональное приложение для сокращения ссылок на ASP.NET Core 8.0 + React + PostgreSQL.
- ✂️ Сокращение длинных URL
- 📊 Статистика переходов по каждой ссылке
- 🔗 Генерация уникальных коротких кодов
- 📱 QR-коды для каждой ссылки
- ASP.NET Core 8.0
- Entity Framework Core 9.0
- PostgreSQL
- QRCoder
- Memory Cache
- React 18
- React Router v6
- Vite
- Modern CSS
- .NET 8.0 SDK
- PostgreSQL 16+
- Node.js 16+
- Docker
docker-compose build --no-cache
docker-compose up -dBackend контейнер поддерживает следующие переменные:
ASPNETCORE_ENVIRONMENT- окружение (Production/Development)ASPNETCORE_URLS- URL для прослушиванияConnectionStrings__DefaultConnection- строка подключения к PostgreSQLJWT_KEY- секретный jwt ключ (> 32 символов)
DOMAIN_NAME- доменное имя для nginx server_name
DB_PASSWORD- пароль для PostgreSQL
UrlShortener/
├── Controllers/
│ ├── AuthController.cs
│ ├── LinksController.cs # Управление ссылками
│ └── RedirectController.cs # Редиректы
├── Data/
│ └── AppDbContext.cs
├── Models/
│ ├── User.cs
│ └── ShortLink.cs
├── Services/
│ ├── JwtService.cs
│ ├── PasswordHasher.cs
│ ├── LinkGeneratorService.cs # Генерация кодов
│ ├── QRCodeService.cs # QR-коды
│ └── CacheService.cs
├── Front/
│ ├── src/
│ │ ├── components/
│ │ │ ├── Login.jsx # Страница входа
│ │ │ ├── Register.jsx # Регистрация
│ │ │ ├── Dashboard.jsx # Личный кабинет
│ │ │ ├── URLShortener.jsx
│ │ │ └── LinkDetails.jsx
│ │ ├── contexts/
│ │ │ └── AuthContext.jsx
│ │ └── services/
│ │ └── api.js
│ └── nginx.conf.template
├── Program.cs
├── Dockerfile
├── docker-compose.yml
└── README.md