https://🚀🔗.ml: Rocket Link
Service to create short emoji link for your long-long link.
https://🚀🔗.ml/to/😆 ➔ https://github.com/Seryiza/rocket-link/stargazers
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
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
)
- Также добавить функции для декода пуникода (для корректного отображения origin link в
- Добавить информацию для SEO
- Добавить favicon
- Подумать, чтобы сделать BASE_DOMAIN опциональным
- Рефакторинг тестов
- Добавить комментарии, где требуется (особенно в код эмодзи)
- Добавить трекинг посещаемости
- Добавить приёмочные тесты
- Добавить поддержу нескольких языков
- Возможно, потребуется отрефакторить message.clj (вынести сообщения в мультиметоды)
- Добавить красивую 404
- Заиспользовать HugSQL для более удобного взаимодействия с БД
- Сделать
/logout
как POST-метод - Сделать некоторые роуты (логин-регистрация, логаут, мои ссылки) доступными только для аутентифицированных / не-аутентифицированных)
- Добавить фронтенд через re-frame
- Добавить деплой через Kubernetes?
- Переехать на deps.edn