Skip to content

Latest commit

 

History

History
77 lines (65 loc) · 4.76 KB

README.md

File metadata and controls

77 lines (65 loc) · 4.76 KB

https://🚀🔗.ml: Rocket Link

Test and Build

Service to create short emoji link for your long-long link.

https://🚀🔗.ml/to/😆https://github.com/Seryiza/rocket-link/stargazers

main page screenshot created link page screenshot

How to develop it

Project requires Leiningen (2.0.0+).

export PORT=3000
export PROJECT_URL=http://localhost:3000
export DATABASE_URL=postgresql://postgres:pass@localhost:54320/rocket_link

$ lein deps
$ lein migratus migrate
$ lein repl
user=> (dev)            ; Enter to development namespace
rocket-repl=> (start)   ; Start systems (db connection, http server...)
rocket-repl=> (refresh) ; Reload changed namespaces and restart systems

See also: Clojure Workflow Reloaded, Mount REPL

Neovim

If you use Neovim and Conjure, you can configurate your init.lua like this:

vim.g['conjure#client#clojure#nrepl#refresh#after'] = 'rocket-repl/restart'

And restart changed namespaces by default mapping <localleader>rr. See Conjure doc. It's very cool!

Идеи возможностей

  • Главная страница для создания эмодзи-ссылки
  • Переход по ссылкам
  • Возможность быстро скопировать / поделиться ссылокой после её создания
  • Регистрация пользователя и список своих ссылок
  • Статистика переходов по своим ссылкам
  • API endpoint для создания ссылки
  • Страница администратора со списком всех ссылок и возможностью их отключения
  • Предложение нескольких вариантов эмодзи при создании ссылки
  • Возможность самому выбрать эмодзи (частично или полностью)

Идеи технические

  • Отрефакторить конфиг на использование env + config.edn
  • Добавить CSRF
  • Добавить кэширование
  • Добавить защиту от ботов
  • Проверить отображение эмодзи и убрать из списка эмодзи без картинок
  • Добавить проверку корректности URL (+ частичное исправление вида "добавить https://")
  • Добавить обработку ошибок 5xx (Sentry?)
  • Добавить случайное перемешивание, чтобы не быть в порядке возрастания Unicode Emoji
  • Сделать punycode/redirect как middleware (и использовать ring redirect)
    • Также добавить функции для декода пуникода (для корректного отображения origin link в /my/links)
  • Добавить информацию для SEO
  • Добавить favicon
  • Подумать, чтобы сделать BASE_DOMAIN опциональным
  • Рефакторинг тестов
  • Добавить комментарии, где требуется (особенно в код эмодзи)
  • Добавить трекинг посещаемости
  • Добавить приёмочные тесты
  • Добавить поддержу нескольких языков
    • Возможно, потребуется отрефакторить message.clj (вынести сообщения в мультиметоды)
  • Добавить красивую 404
  • Заиспользовать HugSQL для более удобного взаимодействия с БД
  • Сделать /logout как POST-метод
  • Сделать некоторые роуты (логин-регистрация, логаут, мои ссылки) доступными только для аутентифицированных / не-аутентифицированных)
  • Добавить фронтенд через re-frame
  • Добавить деплой через Kubernetes?
  • Переехать на deps.edn