
Project Overview
A full-stack URL shortening service that allows users to create shortened links for easier sharing. It includes a frontend web app, backend core service and a redirector. It supports password-protected url and custom url. It is designed with scalability.
Challenges
- Designing an efficient algorithm for generating unique short codes
- Handling normal routes, password-protected routes and custom url routes
- Desigining efficient caching strategy to optimize performance
Future Improvements
- Implement more detailed analytics
- Implement Bloom Filtering for detecting existed custom route.
Reflection
This project helped me understand the importance of database indexing and query optimization. I also learned about working on different HTTP framework(Express, Fastify) and different ORMs(Prisma, MikroORM)
Project Details
Technologies
Node.js
Typescript
Express.js
Fastify.js
MikroORM
Prisma
Docker
Redis
PostgreSQL
Next.js
TailwindCSS
shadcn-ui
Playwright
Tags
Node.js
Express.js
Fastify.js
MikroORM
Prisma
URL Shortening