An open API service indexing awesome lists of open source software.

https://github.com/seryiza/rocket-link

πŸš€πŸ”—: emoji link for your link
https://github.com/seryiza/rocket-link

clojure dokku emoji link-shortener pet-project

Last synced: 7 months ago
JSON representation

πŸš€πŸ”—: emoji link for your link

Awesome Lists containing this project

README

          

## [https://πŸš€πŸ”—.ml](https://xn--qv8hrw.ml/): Rocket Link
[![Test and Build](https://github.com/Seryiza/rocket-link/actions/workflows/test-and-build.yml/badge.svg)](https://github.com/Seryiza/rocket-link/actions/workflows/test-and-build.yml)

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](https://leiningen.org/) (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](https://cognitect.com/blog/2013/06/04/clojure-workflow-reloaded), [Mount REPL](https://github.com/tolitius/mount#running-new-york-stock-exchange)

#### Neovim
If you use [Neovim](https://neovim.io/) and [Conjure](https://github.com/Olical/conjure), you can configurate your init.lua like this:

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

And restart changed namespaces by default mapping `rr`. See [Conjure doc](https://github.com/Olical/conjure/blob/master/doc/conjure-client-clojure-nrepl.txt). 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 ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ
- [Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ тСстов](https://guide.clojure.style/#testing)
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π³Π΄Π΅ трСбуСтся (особСнно Π² ΠΊΠΎΠ΄ эмодзи)
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³ посСщаСмости
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΡ‡Π½Ρ‹Π΅ тСсты
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΡƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков
- Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, потрСбуСтся ΠΎΡ‚Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ message.clj (вынСсти сообщСния Π² ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹)
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ 404
- Π—Π°ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ [HugSQL](https://www.hugsql.org/) для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ взаимодСйствия с Π‘Π”
- Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ `/logout` ΠΊΠ°ΠΊ POST-ΠΌΠ΅Ρ‚ΠΎΠ΄
- Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€ΠΎΡƒΡ‚Ρ‹ (Π»ΠΎΠ³ΠΈΠ½-рСгистрация, Π»ΠΎΠ³Π°ΡƒΡ‚, ΠΌΠΎΠΈ ссылки) доступными Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… / Π½Π΅-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…)
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρ‡Π΅Ρ€Π΅Π· re-frame
- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π΅ΠΏΠ»ΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· Kubernetes?
- ΠŸΠ΅Ρ€Π΅Π΅Ρ…Π°Ρ‚ΡŒ Π½Π° deps.edn