How asifstar135/shortify-server works
Shortly is a Spring-based URL shortener with account management, cookie-based JWT authentication, URL administration, redirects, and visit analytics. The main flow is a user creating a short link, then a visitor resolving it; the redirect endpoint also dispatches analytics collection. Account flows include registration/login and email-based password reset. The graph reflects sampled service/controller calls and repository query capabilities; analytics internals and security wiring beyond the sampled filter/config files are not expanded.
Main entry points: UserService.java User Service · UrlService.java URL Service · UrlController.java URL Controller · UserController.java User Controller
Components 20
HTTP API
- URL Controller
src/main/java/com/shortly/Controllers/UrlController.java - User Controller
src/main/java/com/shortly/Controllers/UserController.java - Response Handler
src/main/java/com/shortly/Utils/ResponseHandler.java
Accounts and Security
- Security Config
src/main/java/com/shortly/Config/SecurityConfig.java - JWT Filter
src/main/java/com/shortly/Config/JwtFilter.java - JWT Service
src/main/java/com/shortly/Services/JwtService.java - User Details
src/main/java/com/shortly/Services/UserDetailService.java - User Service
src/main/java/com/shortly/Services/UserService.java - Email Engine
src/main/java/com/shortly/Utils/EmailEngine.java - Code Generator
src/main/java/com/shortly/Utils/CodeGenerator.java - User Store
src/main/java/com/shortly/Repository/UserRepo.java - Reset Token Store
src/main/java/com/shortly/Repository/ResetTokenRepo.java
Short Links
- URL Service
src/main/java/com/shortly/Services/UrlService.java - URL Store
src/main/java/com/shortly/Repository/UrlRepo.java - Base62 Encoding
src/main/java/com/shortly/Utils/UtilMethods.java
Visit Analytics
- Analytics Collector
src/main/java/com/shortly/Utils/Analytics.java - Visit Store
src/main/java/com/shortly/Repository/UrlVisitRepo.java
Other components
- User
- Link Visitor
- Mail Service
Connections 22
- User → User Controller: submits account requests
- User Controller → User Service: calls account operations
- User Service → User Store: reads and writes users
- User Service → Reset Token Store: stores reset tokens
- User Service → Code Generator: generates reset code
- User Service → Email Engine: sends reset code
- Email Engine → Mail Service: sends email
- User Service → JWT Service: generates login token
- JWT Filter → JWT Service: extracts and validates token
- JWT Filter → User Details: loads token user
- User Details → User Store: finds user
- Security Config → JWT Filter: configures filter
- User Controller → Response Handler: formats response
- Link Visitor → URL Controller: requests short link
- User → URL Controller: manages links
- URL Controller → URL Service: dispatches URL operation
- URL Service → URL Store: queries and persists links
- URL Service → User Store: resolves link owner
- URL Service → Base62 Encoding: encodes link identifier
- URL Controller → Analytics Collector: dispatches visit analysis
- URL Controller → Response Handler: returns redirect or API response
- URL Service → URL Store: reads visit summaries