SnipURL
A full-stack web application for creating and managing shortened URLS with dynamic QR code rendering.

How It Started
While I had experience with full-stack desktop applications development using VB.net in the past, SnipURL was my first web-based full-stack application. I stepped into the project as the Lead Developer, primarily responsible for the system's back-end architecture, while also contributing to front-end development.
Instead of relying on modern frameworks, we intentionally built the project using HTML, CSS, PHP, and MySQL to gain a deeper understanding of the complete client-server lifecycle and database interactions.
Building the System
Since every shortened URL needed to be tied to a user account, we used MySQL to maintain relational integrity and support link history tracking.

One of the main challenges was preventing link collisions. For automatically generated URLs, the backend generates new combinations until a unique alias was found. Custom aliases were also validated to ensure no duplicate links could be created.
Security was another priority. All database operations used prepared statements to protect against SQL injection attacks.
Key Features
- URL Shortening with automatic unique slug generation
- Custom Slugs for user-defined aliases
- Dynamic QR Codes generated for every shortened link
- SMTP Email Integration for password recovery and account management
- User Dashboard for viewing and managing previously created links
Outcome
Our team successfully deployed the application live, and it did exactly what it set out to do: provide reliable URL shortening with QR code as a cherry on top.

Looking back, the codebase is honestly a complete mess, it could have been structured more cleanly. And due to our time constraints, mobile responsiveness was intentionally deprioritized. Instead, we chose to focus on backend reliability, data integrity, and core functionality first.
Ultimately, SnipURL marked my transition from desktop development to web development and gave me hands-on experience leading a team, designing relational databases, and building a complete full-stack application from the ground up.