JavalinH2Thymeleaf
URL Shortener
By Gabriel Cepeda
- Published on
- Duration
- 2 Weeks
- Role
- Full-Stack Developer
+8
Description
The project aims to develop a URL shortening and management system inspired by platforms like Bitly. It enables users to register and shorten URLs, providing analytics on access statistics such as browser types, IP addresses, and operating systems. Administrators have additional privileges to manage links, including the ability to remove offensive content. With features like QR code integration and resource previews, the system offers a comprehensive solution for users seeking efficient URL management and tracking capabilities.
Key features:
- User Registration and Access Control:
- Visitors can register to access system functionalities, with automatic creation of an administrator user.
- Administrators have the authority to elevate registered users to administrative role.
- URL Shortening and Tracking:
- Both registered and unregistered users can shorten URLs, with tracking of access counts, browsers, client IPs, and operating systems.
- Registered users have continuous access to post statistics and summary information for their registered links.
- Unregistered users only have access to shorten URLs saved in session storage.
- Access Time:
- The information summary page displays charts indicating the time and date of link access.
- QR Code Integration:
- QR codes displaying link information are integrated into the summary page.
- Direct access links are provided alongside QR codes.
- Administrative Privileges:
- Administrators have the exclusive capability to remove offensive links from the system.
- Resource Preview for New Links:
- Before adding a new link, the system provides a preview of the associated resource.
Technologies / Tools
- Java
- Javalin
- H2
- Hibernate
- Html/CSS/JavaCcript
- Thymeleaf
- Cookies
- Session
- JWT
- GRPC
- SOAP
Demo
For admin perspective use:
- User: admin
- Password: admin
For user perspective use:
- User: user
- Password: user
Here's the link to the demo where you can interact with the application.
This is a video summary about the functionality: