About this project

What is this project?

Shorten (SHRT) is a URL shortening service that allows users to shorten long URLs into short, shorter-to-embed links.

Why did I create this project?

I created this project to learn and practice FullStack development, using both frontend and backend technologies, authentication and authorization strategies, as well as practice working with MongoDB as a document-based database and Redis as a caching database service.

How does it work?

Users can paste a long URL into the input field, and the server will generate a unique short URL that will redirect to the original URL. Authenticated users can create and manage links, as well as deriving business-value from their analysis dashboard.

I'm using MongoDB for storing Users, Links, and Stats, Redis for storing shortId-to-URL and quickly accessing it. For each visit on a redirect link the system will register an event and include the redirected user's geolocation which is retrieved using Vercel Functions.

The frontend is built with Next.js, and the backend is built with Express. I'm using Next.js API as a facade to the express backend for various reasons such as dealing with blockage of third-party cookies, securly enforcing illegal visits, etc...