Adarsh Kumar

Hey, I'm Adarsh

Software Engineer making the complex feel simple—and the useful feel exceptional.

Back to experience

Full-stack project · MERN · Docker Compose

URL Shortener

A URL-management platform with custom short aliases, account-based link ownership, click analytics, QR codes, and a containerized frontend, API, and MongoDB stack.

Overview

A URL-management platform with custom short aliases, account-based link ownership, click analytics, QR codes, and a containerized frontend, API, and MongoDB stack.

ClientReact · Vite
APIExpress · Node.js
PersistenceMongoDB · Mongoose
Local orchestrationDocker Compose

System architecture

A high-level view of the components and boundaries described by the project source and documentation.

01
React web clientVite · Tailwind · React Router · Axios
02
Express APIJWT auth · route/controller layers · rate limiting
03
MongoDBUsers · shortened links · click/analytics records
04
Compose networkFrontend · API · MongoDB with persistent volume

User and data flow

1Authenticate

Register or sign in and receive a JWT

2Create link

Submit a destination URL and optional custom alias

3Redirect

Resolve the short code and redirect to its destination

4Measure

Review click, device, browser, OS, and daily trend analytics

Product capabilities

Link lifecycle

  • Create, list, and delete short URLs, including custom aliases.
  • Resolve a short code through the redirect endpoint.
  • Manage links from an authenticated dashboard rather than a single anonymous form.

Analytics and sharing

  • Track clicks and summarize performance for an individual URL or across a user's links.
  • Break down link traffic by device, browser, operating system, and daily trends.
  • Generate QR codes for shortened URLs.

Account management

  • JWT-protected profile and password update endpoints.
  • Support account deletion with the associated user data.
  • Apply API rate limiting and configure CORS for the deployed frontend origin.

Data model and domain

URL product data

UserAuthenticated owner and profile
Short URLDestination · short code/alias · owner
Click eventURL reference · request context · time
Analytics summaryAggregated URL and account-level metrics

The API scopes link management to authenticated accounts; redirect activity feeds per-link and overall analytics.

Fast data retrieval and page delivery

This portfolio case study is statically generated at build time, so opening it does not wait for a case-study API or database query. The notes below describe the project's own data path; they distinguish implemented behavior from scale-up opportunities.

Indexed redirect key

The Mongoose schema declares shortCode unique, enabling a unique index for direct lookups when model indexes are built; the deployment does not publish index status or latency benchmarks.

Account-scoped dashboard

Authenticated URL and analytics routes return the current account's links and summaries. Click events are stored separately so reporting can aggregate activity without expanding every link document.

Scale-up consideration

The click-event schema does not declare an index on shortUrl or clickedAt. Add query-shaped indexes and bounded date windows if event volume makes analytics aggregation a read bottleneck; no latency benchmark is published.

HTTP API surface

Authentication and profile

POST /api/auth/register · POST /api/auth/login · GET /api/auth/me · PUT /api/auth/profile · PUT /api/auth/password · DELETE /api/auth/delete

Short links

GET /api/urls · POST /api/urls · DELETE /api/urls/:id · GET /:shortCode

Analytics

GET /api/analytics/:urlId · GET /api/analytics/summary

Engineering decisions

Service boundary

The Vite client calls an Express REST API; URL resolution and protected management endpoints are handled on the server.

Authentication

JWT middleware protects account-specific URL, analytics, and profile operations.

Deployment configuration

The README documents frontend hosting on Vercel and backend hosting on Render, with explicit API URL, base URL, CORS origin, and production environment settings.

Container topology

Docker Compose runs MongoDB, the API, and frontend on a shared bridge network; a named volume persists MongoDB data.

Setup and delivery

  • Install and run the frontend and backend as separate packages, configuring their API and database environment values.
  • Use Docker Compose for the three-service local development topology; MongoDB data lives in the configured persistent volume.
  • The repository README documents production deployment and the API endpoint surface for auth, URLs, analytics, and redirects.

Technology

ReactViteTailwind CSSReact RouterAxiosFramer MotionRechartsNode.jsExpressMongoDBMongooseJWTbcryptjsDockerDocker Compose

Explore the project

Open the project links above to review its source, documentation, or available deployment.

© 2026 Adarsh Kumar