Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

URL Shortener Application

Описание

Приложение коротких ссылок предоставляет удобный способ создания коротких URL-адресов с настройкой временных ограничений и лимита переходов. Пользователи могут управлять своими ссылками через простой интерфейс командной строки. Программа также поддерживает уведомления о недоступности ссылок.

Как пользоваться

Запуск приложения

  1. Убедитесь, что у вас установлена Java 22 и Maven.
  2. Соберите проект:
    mvn compile
  3. Запустите приложение:
    mvn exec:java -Dexec.mainClass="org.example.ShortURLApplication"

Команды

  • create
    Создаёт короткую ссылку. Если вы не авторизованы, система создаст уникальный UUID для вашей сессии.
    Шаги:

    1. Введите полный URL.
    2. Задайте лимит переходов.
  • login
    Авторизует вас с помощью существующего UUID.

  • list
    Показывает список ваших ссылок. Вы можете:

    • delete — удалить ссылку.
    • edit — изменить лимит переходов.
  • redirect
    Перенаправляет на полный URL по короткой ссылке.

  • logout
    Завершает текущую сессию пользователя.

  • exit
    Завершает работу приложения.


Настройка временных ограничений

Конфигурация

Временные ограничения задаются в файле application.properties, который находится в папке src/main/resources.

Если папка resources отсутствует, создайте её:

  1. В папке src/main выполните:
    mkdir resources
  2. Поместите файл application.properties в эту папку.

Пример файла application.properties:

time.limit.days=0
time.limit.hours=0
time.limit.minutes=1

Параметры:

  • time.limit.days — количество дней, через которое ссылка истекает.
  • time.limit.hours — количество часов.
  • time.limit.minutes — количество минут.

Приложение автоматически считывает конфигурацию через класс ConfigManager.

Изменения в конфигурации

  1. Измените значения в файле application.properties.
  2. Перезапустите приложение.

Тестирование

Запуск тестов

  1. Добавьте зависимость JUnit в pom.xml:
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.10.0</version>
        <scope>test</scope>
    </dependency>
  2. Запустите тесты:
    mvn test

Тестируемые кейсы

  • Уникальность коротких ссылок для одного URL, созданных разными пользователями.
  • Блокировка ссылок после исчерпания лимита переходов.
  • Удаление ссылок по истечении времени (настроенного в application.properties).
  • Уведомления пользователей об удалении ссылок из-за лимита переходов или времени.

Структура проекта

src/
├── main/
│   ├── java/
│   │   └── org/
│   │       ├── ChangerURL.java
│   │       ├── Dao.java
│   │       ├── Notification.java
│   │       ├── ShortURLApplication.java
│   │       ├── ConfigManager.java
│   │       └── ...
│   └── resources/
│       └── application.properties
├── test/
│   ├── java/
│   │   └── org/
│   │       └── ShortURLApplicationAdditionalTests.java
└── pom.xml

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages