How ritikkumar27/url-shortener-production-ready works
This is a NestJS URL-shortening API. Users can register or log in, create and manage short links, and resolve them through redirects; redirects submit click events for analytics. Link resolution uses Redis caching with PostgreSQL as the persistent store. The graph includes the documented-in-source authentication, link management, redirect, and analytics stages. Analytics worker behavior is represented, but its internal flow is uncertain because its source was not excerpted.
Main entry points: app.module.ts Nest application · links.service.ts Link operations · prisma.service.ts PostgreSQL access · analytics.service.ts Analytics queries
Components 17
API and security
- Nest application
src/app.module.ts - JWT guard
src/common/guards/jwt-auth.guard.ts - Auth routes
src/modules/auth/auth.controller.ts - Authentication
src/modules/auth/auth.service.ts - JWT strategy
src/modules/auth/strategies/jwt.strategy.ts - Health greeting
src/app.service.ts
Short links
- Link routes
src/modules/links/links.controller.ts - Link operations
src/modules/links/links.service.ts - Short-link redirect
src/modules/links/redirect.controller.ts - Code generation
src/utils/base62.util.ts - URL validation
src/utils/url-validator.ts
Click analytics
- Analytics routes
src/modules/analytics/analytics.controller.ts - Analytics queries
src/modules/analytics/analytics.service.ts - Click worker
src/modules/analytics/analytics.processor.ts
Persistence and cache
- Link cache
src/modules/redis/redis.service.ts - PostgreSQL access
src/database/prisma.service.ts
Other components
- API client
Connections 19
- API client → Nest application: sends requests
- Nest application → Auth routes: registers routes
src/app.module.ts - Nest application → Link routes: registers routes
src/app.module.ts - Nest application → Analytics routes: registers routes
src/app.module.ts - Nest application → JWT guard: installs guard
src/app.module.ts - Auth routes → Authentication: calls
src/modules/auth/auth.controller.ts - Authentication → PostgreSQL access: reads and writes users
src/modules/auth/auth.service.ts - JWT strategy → PostgreSQL access: loads user
src/modules/auth/strategies/jwt.strategy.ts - Link routes → Link operations: calls
src/modules/links/links.controller.ts - Link operations → PostgreSQL access: reads and writes links
src/modules/links/links.service.ts - Link operations → Link cache: reads and updates cache
src/modules/links/links.service.ts - Link operations → Code generation: generates codes
src/modules/links/links.service.ts - Link operations → URL validation: validates URLs
src/modules/links/links.service.ts - Short-link redirect → Link operations: resolves code
src/modules/links/redirect.controller.ts - Short-link redirect → Analytics queries: submits click
src/modules/links/redirect.controller.ts - Analytics routes → Analytics queries: calls
src/modules/analytics/analytics.controller.ts - Analytics queries → PostgreSQL access: queries click data
src/modules/analytics/analytics.service.ts - Click worker → PostgreSQL access: writes click data
src/modules/analytics/analytics.processor.ts - Nest application → Health greeting: provides greeting
src/app.module.ts