Giter Club home page Giter Club logo

bookmarkly's Introduction

Bookmarkly.com

This repository contains the code behind Bookmarkly, a bookmark organizer built with Backbone.js in the browser and Node.js on the server with data persisted to MySQL.

Some features:

  • Add bookmarks with a bookmarklet, Chrome extension or through the site
  • Saves URL, title, description, tags with autosuggest and a screenshot
  • Bookmark grid view resizes with the window and loads more bookmarks on scroll
  • Can import bookmark files exported from IE, Chrome, Firefox and Delicious
  • No page reloads at all, so moving between pages is near-instant and smooth
  • Combines and minifies all the JS source and view templates automatically when the server starts

Installation

  1. Clone this repository

  2. Install Node.js and NPM

  3. Install Redis (for session storage)

  4. Install dependencies: npm install -d

  5. Create a MySQL database with the 3 tables in schema.sql

  6. Edit the configuration section of server.js to point to your database

  7. Run node server.js and browse to http://localhost:3000

If you get an error from express on launch, you may need to npm install [email protected]

License

Copyright (c) 2012 Dan Grossman. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

TODO

The screenshot generating server is currently a separate repository that I have not yet released.

bookmarkly's People

Contributors

auser avatar dangrossman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bookmarkly's Issues

please see it , thx

Hi ,
I notice the EditView used save() :

this.model.set({ url: url, title: title, description: description, tags: tags, timestamp: Math.round(new Date().getTime() / 1000) });
this.model.save();

then,the data post to server is string json :

{url: "http://123", title: "123", description: "123", tags: [], timestamp: 1435309038}

I want to know your server how to deal this string json , because i only know how to deal such data:

url=http://123&title=123&description=123&tags=null&timestamp=1435309038

how to deal data in save() of Backbone ? this question puzzle me so long time .
please answer me , thanks

use remoteStorage.js to enable people to save & sync their bookmarks with their own account

remoteStorage.js is a client-side library to add remoteStorage support to your client-side app. There is a tutorial for example usage and more info in the readme of the repository.

Basically, remoteStorage is an open standard to decouple web apps from per-user data storage โ€“ whereas at the moment, most web apps are an app+storage package deal. Check the website of the unhosted movement for more info, and feel free to join our chat room if you have questions.

Since Bookmarkly is mostly client-side, it would be very fitting to use remoteStorage instead of persisting the data into MySQL.

express 2.5.6 error on node 0.8

I get an error trying to install dependencies

824 info installOne [email protected]
825 error notsup Unsupported
825 error notsup Not compatible with your version of node/npm: [email protected]
825 error notsup Required: {"node":">= 0.4.1 < 0.7.0"}
825 error notsup Actual:   {"npm":"1.1.32","node":"0.8.0"}
826 error System Darwin 10.6.0
827 error command "node" "/usr/local/bin/npm" "install" "-d"

Should I switch to node 0.7 or can I modify the express version in package.json so it works?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.