Cutlink is a web application designed for quickly and easily shortening URLs while providing detailed statistics on each shortened link's usage. With Cutlink, you can manage your links, gain valuable insights into who and how they access them, and generate QR codes for easy distribution.
The application is developed in Java using the Javalin framework, ensuring optimal performance and a smooth user experience. Cutlink not only offers an intuitive interface for shortening URLs but also includes a range of APIs (REST, gRPC, and SOAP) for flexible integration and advanced link management.
In addition to URL shortening functionality, Cutlink provides advanced tools for those who seek more control and analysis of their links, such as click statistics, origin countries, browsers used, and more. It also allows for the generation and customization of QR codes for various purposes, including web links and Wi-Fi network configurations.
- Shorten URLs without registration: Shorten URLs directly from the homepage without needing to sign in.
- URL Management: Create, store, and manage shortened URLs in your account.
- Detailed Statistics: Access detailed statistics of your shortened URLs, including clicks, origin countries, browsers used, and more.
- QR Codes: Generate QR codes for URLs, web pages, Wi-Fi passwords, Wi-Fi connections, and more.
- Page Preview: View a preview of the page that the shortened link points to directly from the application.
- REST API: Provides endpoints for managing shortened URLs, accessing statistics, and more.
- gRPC API: Offers an efficient interface for internal service communication.
- SOAP API: Implements a SOAP service for interoperability with legacy systems or those requiring this standard.
Here are some screenshots and GIFs showing the application in action:
Sign In and Register
These views allow users to access their account, manage their shortened URLs, and get detailed statistics on their usage. Registering on Cutlink offers the benefit of centralizing all activities related to shortened links, providing a more personalized and secure experience with access to a complete history of links and additional options such as customization and URL protection.
Home Section
In the Home section, you can see a summary of your shortened URLs, including the number of accesses, the number of times each one has been shared, the number of active links, and a map showing where the majority of accesses come from.
URLs Section
In the URLs section, you can see all your shortened URLs in a list of cards providing information about the link's name, QR code, shortened URL, and original URL. To view the statistics for a URL, click the "View Summary" button to access detailed charts and information about all accesses.
Statistics Section
In the statistics section, you can view detailed information about the usage of your shortened URLs, including the number of clicks, the origin country of users, the browser they used, and much more.
QR Codes Section
In the QR Codes section, you can create a QR code for anything you need, including web pages, Wi-Fi passwords, or directly connecting to a Wi-Fi network. You can store files within the QR code and download them to export wherever you like.
- Language: Java
- Frameworks: Javalin
- Frontend: Freemarker, HTML, CSS, JavaScript, Bootstrap
- Build Tool: Gradle
- Database: H2
To run the application, follow these steps:
Important
Requirements:
- Java 17: Make sure you have Java 17 installed on your system.
- Javalin 5.3.2: This is included in the
build.gradlefile of the project, so you don't need to install it manually.
-
Clone this repository:
git clone https://github.com/darvybm/cutlink.git
-
Navigate to the project directory:
cd cutlink -
Configure the variables in
application.propertiesif necessary: Here you can customize settings like the application port or the database URL. -
Run the project using your preferred IDE or Gradle:
./gradlew run
Note
In this project, redirection is used where the machine's IP is used instead of localhost. Make sure to configure the IP correctly in your development environment.
Here are the contributors to this project:
darvybm |
Christpaul01 |
This project is licensed under the MIT License - see the LICENSE file for details.







