Backend / Full-stack · In Rebuild
SnapLink
SnapLink is being repositioned as a backend-heavy full-stack URL management platform. The current codebase already contains the core product surface, but the public narrative and local developer experience need cleanup before it can act as a flagship portfolio project.
Problem
The original repository presents as a course project even though the implementation includes real backend concerns: URL lifecycle rules, redirect handling, user flows, analytics, and cloud persistence. The next step is to make those engineering decisions visible and runnable.
Solution
Rebrand the project around a coherent URL management workflow: create short links, manage aliases, enforce expiration and one-time rules, redirect safely, and track click analytics. The site will use this case study to explain the system before the rebuild is fully deployed.
Architecture
- Spring Boot backend exposes REST endpoints for short link creation, redirects, search, deletion, authentication, and analytics.
- Vue frontend supports account flows, URL creation, link management, plan/status pages, and statistics views.
- Persistence layer is designed around short link records, user records, click events, and lifecycle metadata.
- Cloud deployment traces include App Engine and Bigtable/Datastore-style configuration, which will be normalized in the rebuild.
Engineering Decisions
- Treat redirect behavior as a backend correctness problem, not just a frontend form demo.
- Keep custom alias, expiration, one-time link, and inactive link behavior explicit so edge cases can be tested.
- Move away from class-project naming and README defaults toward production-style documentation and local setup.
- Use the rebuild to add tests around alias collisions, expiration, redirect safety, and analytics recording.
Outcomes
- Strong candidate project for showing Java/Spring backend depth alongside a real frontend surface.
- Useful bridge between full-stack product work and backend platform skills.
- Currently marked In Rebuild until README, local setup, and validation are cleaned up.
Next Steps
- Rewrite README with architecture, data model, setup, and API examples.
- Add Docker Compose for backend, frontend, and local persistence.
- Remove hardcoded special cases and tighten CORS/security defaults.
- Add focused tests for link lifecycle and analytics behavior.