Skip to content

LinkMate is a web page bookmarking application powered by Vue.js and Pouch/CouchDb.

License

Notifications You must be signed in to change notification settings

tomshaw/linkmate

Repository files navigation

LinkMate

Make a pull request Tag GitHub (pre-)release Version npm Downloads npm MIT license Tweet

Overview

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.

Features

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.

Application Directions

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.

Replication Directions

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.

Libraries Used

  • 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

Further Reading

  • 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

Quick Setup

$ glt clone https://github.com/tomshaw/linkmate
$ cd linkmate
$ npm install
$ npm run build

npm run build

Build the extension into dist folder for production.

npm run build:dev

Build the extension into dist folder for development.

npm run watch

Watch for modifications then run npm run build.

npm run watch:dev

Watch for modifications then run npm run build:dev.

npm run build-zip

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.

License

See the bundled LICENSE file for details.

Author

Tom Shaw (@urlrider)

About

LinkMate is a web page bookmarking application powered by Vue.js and Pouch/CouchDb.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published