https://snip-delta-two.vercel.app/
A full-stack URL Management Platform built with Spring Boot, React, MySQL, and Redis.
The application allows users to create, manage, and track shortened URLs with support for custom aliases, QR code generation, click analytics, expiration management, caching, and monitoring.
Planned deployment stack:
- Frontend: Vercel
- Backend: Railway
- Database: MySQL
- Cache: Redis
Deployment configuration is already included through Docker and environment-based configuration.
- Create short URLs from long URLs
- Generate custom aliases
- Automatic short code generation
- URL validation
- View all shortened URLs
- View URL details
- Enable/disable URLs
- Expiration date support
- Track URL clicks
- Click count monitoring
- URL performance insights
- Analytics dashboard
- Generate QR codes for shortened URLs
- Download and share QR codes
- Mobile-friendly access
- Redis caching for faster URL resolution
- Reduced database load
- Improved response times
- Spring Boot Actuator integration
- Health checks
- Application metrics
- Runtime monitoring
- Responsive React UI
- Dashboard view
- URL management interface
- Analytics visualization
- Java 17
- Spring Boot 3
- Spring Data JPA
- Spring Data Redis
- Spring Validation
- Spring Actuator
- Maven
- Lombok
- React
- Axios
- React Router
- Recharts
- CSS
- MySQL
- Redis
- Docker
- Docker Compose
- Vercel
- Railway
url-manager
โ
โโโ backend
โ โโโ controller
โ โโโ service
โ โโโ repository
โ โโโ model
โ โโโ dto
โ โโโ config
โ โโโ resources
โ
โโโ frontend
โ โโโ src
โ โ โโโ api
โ โ โโโ components
โ โ โโโ pages
โ โ โโโ services
โ โโโ public
โ
โโโ docker-compose.yml
โโโ README.md
git clone https://github.com/yourusername/url-manager.git
cd url-managerCreate a database:
CREATE DATABASE urlshortener;Update:
backend/src/main/resources/application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/urlshortener
username: your_username
password: your_passwordMake sure Redis is running locally:
redis-servercd backend
mvn spring-boot:runBackend runs at:
http://localhost:8080
Install dependencies:
cd frontend
npm installRun frontend:
npm startFrontend runs at:
http://localhost:3000
Run the complete application stack:
docker compose up --buildServices:
| Service | Port |
|---|---|
| Frontend | 3000 |
| Backend | 8080 |
| MySQL | 3306 |
| Redis | 6379 |
POST /api/urlsRequest:
{
"originalUrl": "https://www.google.com",
"customAlias": "google",
"expiryDays": 30,
"title": "Google Search"
}GET /api/urlsGET /api/urls/{id}GET /api/urls/{id}/analyticsGET /{shortCode}Example:
http://localhost:8080/google
{
"id": 1,
"originalUrl": "https://www.google.com",
"shortCode": "google",
"shortUrl": "http://localhost:8080/google",
"clickCount": 2,
"createdAt": "2026-06-02T03:00:00",
"expiresAt": "2026-07-02T03:00:00",
"isActive": true,
"title": "Google Search"
}React Frontend
โ
โผ
Spring Boot REST API
โ
โโโโโโโโดโโโโโโโ
โผ โผ
MySQL Redis
(Database) (Cache)
- User Authentication & Authorization
- Custom Domains
- Team Workspaces
- Advanced Analytics
- Export Reports (CSV/PDF)
- URL Categories & Tags
- Rate Limiting
- Geo-location Analytics
- AI-powered Traffic Insights
- REST API Development
- Spring Boot Architecture
- Database Design
- Redis Caching
- Full-Stack Development
- Docker Containerization
- API Monitoring
- React Integration
- Deployment & DevOps
- Scalable System Design
Gaurang Kishore