Skip to content

Cutlink is a web-based URL shortening system developed in Java using the Javalin framework. It offers a comprehensive statistics dashboard for URL creators and includes additional features such as QR code generation for URLs and Wi-Fi networks.

License

Notifications You must be signed in to change notification settings

darvybm/cutlink

Repository files navigation

Header Image

Java Badge Javalin Badge Freemarker Badge Gradle Badge H2 Badge API Badge

Cutlink

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.

Table of Contents

Features

  • 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.

Application

Here are some screenshots and GIFs showing the application in action:

Sign In and Register

Sign In

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

Home

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

URLs List

Create URL

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

Statistics

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

QR Codes

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.

Tools Used

  • Language: Java Java
  • Frameworks: Javalin Javalin
  • Frontend: Freemarker, HTML, CSS, JavaScript, Bootstrap Freemarker HTML CSS JavaScript Bootstrap
  • Build Tool: Gradle Gradle
  • Database: H2 H2

How to Install

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.gradle file of the project, so you don't need to install it manually.
  1. Clone this repository:

    git clone https://github.com/darvybm/cutlink.git
  2. Navigate to the project directory:

    cd cutlink
  3. Configure the variables in application.properties if necessary: Here you can customize settings like the application port or the database URL.

  4. 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.

Contributors

Here are the contributors to this project:

darvybm
darvybm
Christpaul01
Christpaul01

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact Me

LinkedIn Badge Email Badge

About

Cutlink is a web-based URL shortening system developed in Java using the Javalin framework. It offers a comprehensive statistics dashboard for URL creators and includes additional features such as QR code generation for URLs and Wi-Fi networks.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published