GoLink is a URL shortener: paste a long link, get a short one that redirects to it. It is a small product, which makes it a good place to practise building something end to end, from the database schema to the UI and the container it ships in.
Features
- Create short links from long URLs.
- Fast redirects from the short code to the original URL.
- A clean Angular interface for creating and managing links.
Stack
- Front end: Angular.
- Backend: ASP.NET Core Web API.
- Database: PostgreSQL.
- Deployment: Docker.
Design considerations
A URL shortener looks simple, but it raises a few questions worth thinking through:
- Short code generation. Codes need to be short, unique and hard to guess in sequence.
- Read-heavy traffic. Redirects vastly outnumber link creation, so the redirect path should be as lean as possible and indexed on the short code.
- Validation. Only valid
http/httpsURLs should be accepted, so the service cannot be used to redirect to unexpected schemes.
What I learned
GoLink was my playground for Angular on the front end alongside ASP.NET Core on the back end, and for packaging a full application with Docker.