Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design Doc V-2 Release #53

Open
vinit717 opened this issue Dec 10, 2023 · 0 comments
Open

Design Doc V-2 Release #53

vinit717 opened this issue Dec 10, 2023 · 0 comments

Comments

@vinit717
Copy link
Member

Overview 🌐

This feature introduces enhancements to the URL shortener, focusing on link expiration options, detailed URL statistics tracking, and a link QR code generator with custom logo integration. The frontend is built using Next.js, and the backend utilizes Go Gin.

Purpose 🎯

The goal is to provide users with more control over short URLs, allowing them to set expiration based on views, track detailed analytics, and customize URLs with QR codes and logos.

User Stories 👨‍💻

  • As a user, I want to set short URLs to expire after a certain number of views.
  • As a user, I want detailed statistics for each short URL, including access count and timestamp of each access.
  • As a user, I want to generate QR codes for short URLs with customizable logos.
  • As a user, I want the ability to update the original URL associated with a short URL.
  • As a user, I want the option to delete a short URL.

Design 🎨

Frontend Design

  • Utilize Next.js for the frontend.
  • Implement intuitive UI components for setting link expiration, viewing detailed statistics, and customizing short URLs.
  • Integrate a QR code generator with support for custom logos.

Backend Design

  • Utilize Go Gin for backend API development.
  • Implement endpoints for setting link expiration, retrieving detailed statistics, and handling URL customization.
  • Ensure secure handling of QR code generation.

Dependencies

Feature Details 📝

Link Expiration Options

  • Users can set short URLs to expire after a specified number of views.
  • Implement a clean and user-friendly interface for configuring expiration settings.

URL Statistics Tracking

  • Track access count for each short URL.
  • Record timestamp of each access for detailed analytics.
  • Display analytics in an organized and visually appealing manner on the frontend.

Link QR Code Generator with Custom Logo

  • Implement a QR code generator for short URLs.
  • Allow users to upload custom logos for QR codes.

Customization of Short URLs

  • Enable users to update the original URL associated with a short URL.
  • Provide an option to delete a short URL.

Milestones 🌐

Milestone 1

  • Develop frontend components for detailed URL statistics.
  • Implement backend logic for tracking and retrieving statistics.

Milestone 2

  • Implement frontend components for link expiration settings.
  • Create backend endpoints for handling link expiration.

Milestone 3

  • Integrate QR code generator into the frontend.
  • Implement backend support for generating QR codes with custom logos.

Milestone 4 🛠️

  • Finalize URL customization features on the frontend and backend.

Testing 🧪

  • Utilize Jest and RTL for frontend testing and go testing package for backend testing.
  • Perform rigorous testing in development and production environments.

Rollout Strategy 🚀

  • Merge backend PR first, providing necessary APIs.
  • Proceed with frontend development, ensuring continuous integration.
  • Conduct thorough manual testing in development and staging environments.
  • Gradually roll out the feature to production after ensuring stability.

Future Work 🔮

  • Consider adding an option for users to generate QR codes directly in the dashboard.
  • Explore additional customization options based on user feedback.

Conclusion 🏁

This feature enhances the URL shortener by introducing valuable functionalities, providing users with greater control and insight into their short URLs. The comprehensive design ensures a smooth and intuitive user experience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant