LinkMate is the swiss army knife of web page bookmarking. Powered by PouchDB, users can create private databases of bookmarks or choose to share their data with geographically spread out users in real time no matter where they are. Data replication is the foundation of LinkMate. Perfect for students, researchers or anybody who needs to save or share and synchronize their data instantly. LinkMate is a work in progress. If you would like to contribute or share any ideas please feel free to create a pull request or submit an issue.
Functionality you'll find in this application:
- Completely private web page bookmarking management.
- Supports both master-master and master-slave replication
- Intuitive customizable interace that makes bookmarking a breeze.
- Access controlled remote database authentication and authorization.
- Save web page banners and images with the click of a button.
- Listen to document titles utilizing the SpeechSynthesis Web Speech API.
Once the application is loaded head on over to the options page and start by filling in your general information and hitting the submit button. Next create some databases to organize your bookmarks such as sports or cooking. Once done click the category tab and create some categories for your databases such as football and basketball for sports and recipes and deserts for cooking. If you like check, out some of the themes and hit apply. Now your ready to start booking marking some web pages.
The first step in learning how replication works is to install a local copy of CouchDb, and disable the Admin Party in Fauxton by creating a username and password. Create an empty database by clicking the create database button. In the LinkMate extension options menu, click the database tab and create a new database. Make sure to enter your correct username and password and remote database url. Next on the replication tab, click the checkbox to verifiy your connection. Once verified click the push button to back your data or pull to restore it. Note you can also create a user and give them permissions to the database or assign the user to a group with database permissions. To quickly create a new user, on the options general tab, enable remote authentication and click the register link on the login screen.
- Vue Extension - A boilerplate for quickly starting a web extension with Vue, webpack 4, ESLint and more!
- Vue - A progressive, JavaScript framework for building UI on the web.
- Vuex - Vuex is a state management library for Vue.js.
- PouchDB - PouchDB is a pocket-sized database.
- PouchVue - Pouchdb bindings for Vue.js
- Materialize - Materialize, a CSS Framework based on Material Design
- webextension-polyfill - A lightweight polyfill library for Promise-based WebExtension APIs in Chrome
- PouchDB Find - Provides a simple, MongoDB-inspired query language that accomplishes the same thing as the map/reduce API, but with far less code. Eventually this will replace PouchDB's map/reduce API entirely. You'll still be able to use map/reduce, but it will be distributed as a separate plugin.
- PouchDB LiveFind - Live PouchDB queries that update automatically as changes come in!
- PouchDB Authentication - Easy user authentication for PouchDB/CouchDB.
- Relational Pouch - Relational Pouch is a plugin for PouchDB that allows you to interact with PouchDB/CouchDB like a relational data store, with types and relations.
- Mango Queries - Mango queries, also known as pouchdb-find or the find() API, are a structured query API that allows you to build secondary indexes beyond the built-in allDocs() and changes() indexes.
- Map/Reduce Queries - Map/reduce queries, also known as the query() API, are one of the most powerful features in PouchDB.
- PouchDB Quick Search - Full-text search engine on top of PouchDB
$ glt clone https://github.com/tomshaw/linkmate
$ cd linkmate
$ npm install
$ npm run build
Build the extension into dist
folder for production.
Build the extension into dist
folder for development.
Watch for modifications then run npm run build
.
Watch for modifications then run npm run build:dev
.
Build a zip file following this format <name>-v<version>.zip
, by reading name
and version
from manifest.json
file.
Zip file is located in dist-zip
folder.
See the bundled LICENSE file for details.
Tom Shaw (@urlrider)