### URL Shortener Assignment
Objective:
Develop a sophisticated URL shortening service that not only shortens URLs but also
provides detailed analytics. This service should cater to high traffic, ensuring performance
and scalability.
Enhanced Backend and Analytics Requirements:
1. Backend Development:
- Utilise Nest.js and TypeScript to build a robust and efficient backend.
- Implement URL shortening algorithms to optimise storage and retrieval efficiency.
- Ensure the system can scale to handle high volumes of requests with minimal latency.
- Develop a system to handle URL expirations and auto-deletion after a certain period.
2. User Authentication and Authorization:
- Implement secure user authentication and authorization.
- Ensure each user has access only to their URLs and associated analytics.
3. Data Management:
- Use the database of your choice for data storage, ensuring data integrity and efficient
querying.
- Implement Redis for caching to enhance the performance of URL retrieval.
4. Advanced Analytics:
- Create a detailed analytics system that tracks not only the number of clicks but also.
- Referral sources.
- Time-based click analysis (e.g., most active hours).
- Browser and device types used to access the URLs.
- Provide a way to access these analytics via an API.
5. Security:
- Ensure the application is secure against common vulnerabilities (e.g., SQL injection,
XSS) if applicable.
- Implement rate limiting to prevent abuse of the service. (optional)
6. Testing:
- Extensively test the application, including unit and integration tests, to ensure reliability
and performance.
Submission:
Provide a GitHub repository link containing the code,you can either make the repo public or
add me(Gauravism2017) as a contributor, also provide a comprehensive README file with
setup instructions, and documentation of your approach, especially for the analytics and
scalability solutions.
Salary range:
Timeline
4 days