Giter VIP home page Giter VIP logo

notational's Introduction

Notational, notes at the speed of thought.

Notational encourages you to keep your hands on the keyboard so you can create, update, and find notes really quickly. The UX is based on the popular macOS app, Notational Velocity (but not affiliated in any way).

Notational screenshot

Firebase Setup

Notational uses Firebase (it's pretty abstracted so it could change). You can spin up your own instance for testing or local development. Check out this issue for more info.

You will also need to create a settings.js file in the root directory that contains your Firebase information:

// settings.js

const ENV = {
	firebase: {
	    apiKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
	    authDomain: "YOUR-APP-NAME.firebaseapp.com",
	    databaseURL: "https://YOUR-APP-NAME.firebaseio.com",
	    storageBucket: "YOUR-APP-NAME.appspot.com",
	    messagingSenderId: "XXXXXXXXXXXX"
	}
}

export default ENV
global.ENV = ENV

The initial DB schema should look like the following (default_notes is the only required key-value pair):

{
  "default_notes" : {
    "notes" : [
	    {
	      "body" : "Hey-oh!\n\nWelcome to Notational – the fastest note-taking app on the web.\n\nNotational makes it easy to keep your hands on the keyboard so you can do things like... type notes really quickly! (See *Useful Shortcuts* above.)\n\nAlso, no need to save your work as everything you type (in this box) is ~automagically~ saved.\n\n—Tom",
	      "date_created" : "Sun Mar 05 2017 18:15:27 GMT-0500",
	      "date_modified" : "Sun Mar 05 2017 18:25:02 GMT-0500",
	      "id" : 1,
	      "name" : "Welcome (Click Me)"
	    },
	    ...
    ]
  },
  "public_notes" : {
  	// Auto created
  },
  "users" : {
  	// Auto created
  }
}

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# deploy on Firebase
npm run deploy

License

Released under the MIT license. See LICENSE for details.

notational's People

Contributors

tmm 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

notational's Issues

Project attribution

Hi Tom,

Based on the way your project is described, it's possible to assume that it is either part of, or associated with, the Notational Velocity project.

Please change your project description to explicitly state that your project is not affiliated with Notational Velocity in any way. Even calling it "Notational" is confusing enough, given the similarity of the interface.

Regards,

Zachary Schneirov

Cant create new notes

Some how I got my data into an broken state, and creating new notes (ctl + enter) fails:

Uncaught (in promise) Error: Firebase.push failed: first argument contains NaN in property 'users.TEUg6M4xcTTO6rtrUBzNVIWanqt2.notes.id'
    at Pd (build.js:43)
    at build.js:43
    at fb (build.js:43)
    at Pd (build.js:43)
    at Od (build.js:43)
    at U.g.push (build.js:43)
    at build.js:14
    at Promise (<anonymous>)
    at Object.createNote (build.js:14)
    at CREATE_NOTE (build.js:14)

Also I have 2 zombie notes showing up that cant be deleted...

screen shot 2017-05-24 at 4 07 22 pm

Cool project and great UI by the way...

During dev setup: "Uncaught error" if no notes present in firebase

When I configured the default key-value pair of default_notes/notes without any notes and ran "npm run dev" I got the error:

Uncaught (in promise) TypeError: Cannot read property 'forEach' of null
    at eval (api.js?bd93:65)
    at <anonymous>

Resolved it by adding an if-statement in the function getPreviewData like this:

if(res.val() != null){
    res.val().forEach((note) => {
      note.date_modified = dateModified
      notes[note.id] = note
    })
}

Don't know if this is a solution or if it should be resolved in another way or if I'm doing something wrong. Is this a good solution?

Use all available space

For a productivity tool, not using the whole available space of the window is bad.

Here's a simple note. Notice how there's 60%+ of unused space and the most important thing, the content of the note, is squeezed into arbitrarily sized box:

note-shot

Problem with hosting

Hello! I am trying to self host your project. I made a settings.js and put the required things inside of it,
I enabled authentication as email/password, I enabled hosting but I want to work in local host till it works, I need help with the database and storage, as I do not know how to set it up. When I signed up on the local host, it let me sign up, but it was in an infinite loop at localhost:8080/app.
Here is a screenshot of the authentication:
https://file.coffee/2kEamL0V5.png

Minimal local development setup

Fantastic live demo!

I just tried to clone the project and run it locally, and I've run into a few things:

Module not found: Error: Can't resolve '../../settings' in '/home/bob/projects/personal/notational/src/store'

There needs to be some settings.json (or settings.js?) in the project root, but that is ignored by git and there is no sample file.

Could you please add a sample of the minimal settings file needed to get this up and running locally?

I'm not familiar with Firebase, will I need to sign up for it to run this project locally?

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.