All Projects → ilya40umov → KotLink

ilya40umov / KotLink

Licence: Apache-2.0 license
An implementation of Go-Links, written in Kotlin

Programming Languages

kotlin
9241 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to KotLink

Cafebar
An upgraded Snackbar for Android that provides more options and easy to use
Stars: ✭ 142 (+283.78%)
Mutual labels:  material-components
Material Components Android
Modular and customizable Material Design UI components for Android
Stars: ✭ 13,128 (+35381.08%)
Mutual labels:  material-components
Grocy Android
ERP beyond your fridge, now on your phone – An awesome companion app for Grocy
Stars: ✭ 227 (+513.51%)
Mutual labels:  material-components
Material
A lightweight Material Design library for Angular based on Google's Material Components for the Web.
Stars: ✭ 143 (+286.49%)
Mutual labels:  material-components
Materialnavigationview Android
📱 Android Library to implement Rich, Beautiful, Stylish 😍 Material Navigation View for your project with Material Design Guidelines. Easy to use.
Stars: ✭ 168 (+354.05%)
Mutual labels:  material-components
React Material Components Web
React wrapper of Google's Material Components Web
Stars: ✭ 184 (+397.3%)
Mutual labels:  material-components
Android Cards
CardView with Material Design using ConstraintLayout
Stars: ✭ 136 (+267.57%)
Mutual labels:  material-components
react-native-button-toggle-group
An animated button toggle group for React Native
Stars: ✭ 44 (+18.92%)
Mutual labels:  material-components
Materialdesign2
A beautiful app designed with Material Design 2 using Android X.
Stars: ✭ 170 (+359.46%)
Mutual labels:  material-components
Material Backdrop
A simple solution for implementing Backdrop pattern for Android
Stars: ✭ 221 (+497.3%)
Mutual labels:  material-components
Materialdrawer
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.
Stars: ✭ 11,498 (+30975.68%)
Mutual labels:  material-components
Material Components Flutter Codelabs
Codelabs for Material Components for Flutter (MDC-Flutter)
Stars: ✭ 165 (+345.95%)
Mutual labels:  material-components
Bottomsheet
BottomSheet dialog library for Android
Stars: ✭ 219 (+491.89%)
Mutual labels:  material-components
Foodium
It simply loads Posts data from API and stores it in persistence storage (i.e. SQLite Database). Posts will be always loaded from local database. Remote data (from API) and Local data is always synchronized.
Stars: ✭ 1,940 (+5143.24%)
Mutual labels:  material-components
Materialbanner
A library that provides an implementation of the banner widget from the Material design.
Stars: ✭ 241 (+551.35%)
Mutual labels:  material-components
Ibackdrop
A library to simply use Backdrop in your project (make it easy). Read more ->
Stars: ✭ 137 (+270.27%)
Mutual labels:  material-components
Ui Material Components
Monorepo that contains all of the NativeScript Material Design plugins.
Stars: ✭ 170 (+359.46%)
Mutual labels:  material-components
doodle-android
Colorful live wallpapers with auto dark mode and power-efficient animations
Stars: ✭ 440 (+1089.19%)
Mutual labels:  material-components
Material Components Web
Modular and customizable Material Design UI components for the web
Stars: ✭ 15,931 (+42956.76%)
Mutual labels:  material-components
Material Admin
Free Material Admin Template
Stars: ✭ 219 (+491.89%)
Mutual labels:  material-components

KotLink

License Build Status codecov Docker Hub

KotLink is a solution for creating and sharing memorable URL aliases, which takes its inspiration from Google's internal Go-Links system.

Why use KotLink?

  • Get rid of bookmarks for URLs frequently used within your team
  • Speak the same language as your colleges (e.g. Matt, can you check out what is up with staging␣grafana?)
  • Search in your "intranet" quickly for a resource that you don't know the exact URL for

Overview

KotLink works by letting people install a tiny browser extension that activates when the person first types kk in the address bar and then presses space. While activated, the extension is providing autocomplete based on the database of aliases, and after the user has hit enter, it will redirect the user to the actual URL that matches the provided alias (or to the search page, if such an alias does not exist).

Suggestions In Address Bar

For example, if someone has already created an alias for vim shortcuts that maps to https://vim.rtorr.com, by typing kk␣vim␣shortcuts↵, the user will be redirected to the actual link.

Please beware that to make use of the browser extension, you will first need to set up a dedicated KotLink server, as it's going to store all the links / namespaces for your team.

Supported Browsers

Chrome and Firefox extensions require some configuration before they can be used.

Other Known Ways Of Using KotLink

With Vivaldi via manually registering KotLink as a search engine

MacOS and Alfred users can install this workflow (requires Node.js 8+ and the Alfred Powerpack):

npm install --global alfred-kotlink

KotLink Server

KotLink server requires an instance of PostgreSQL as the backend store, and encapsulates all the logic around storing / resolving URL aliases, as well as UI for creating / editing them.

Assuming you have Docker and docker-compose installed, you can run KotLink server on your machine for evaluation purposes with the following commands:

git clone https://github.com/ilya40umov/KotLink.git && cd KotLink
./gradlew bootRun

Alternatively, if you don't want to clone the repository, you can use the following set of commands:

docker network create kotlink-network

docker run --name kotlink-postgres \
  --network kotlink-network \
  -e POSTGRES_USER=kotlinkuser \
  -e POSTGRES_PASSWORD=kotlinkpass \
  -e POSTGRES_DB=kotlink \
  -d postgres:13.3

docker pull ilya40umov/kotlink

docker run --rm --name kotlink-server \
  --network kotlink-network -p 8080:8080 \
  -e SPRING_DATASOURCE_URL=jdbc:postgresql://kotlink-postgres:5432/kotlink \
  ilya40umov/kotlink

Now if you open http://localhost:8080/ you will be redirected to KotLink UI, which, after you have signed in with your Google account, will allow you to add namespaces and aliases.

List Aliases in UI

At this point, you can finally install the Kotlink browser extension, open its Options (Preferences in Firefox), and configure it to access your local KotLink server:

  • set KotLink Server URL to http://localhost:8080
  • set Extension Secret to your personal extension secret, which you will find at http://localhost:8080/ui/extension_secret).

Extension Options

Please, note that to allow accessing KotLink UI under your custom domain name / IP address, you will need to obtain OAuth 2.0 client credentials from Google API Console and provide them to your KotLink server via environment variables (see more on this in Deployment Guide). Through environment variables, you will also be able to restrict who can access your KotLink server.

When you are done evaluating, you can run the following command to clean up containers from your machine:

./gradlew composeDownForce

or if you chose the second approach:

docker rm -f kotlink-postgres && docker network rm kotlink-network

For the detailed instructions on how to permanently set up your own KotLink server, take a look at the Deployment Guide.

Engineering Guide

If you would like to contribute to the project, take a look at the Engineering Guide.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].