GithubHelp home page GithubHelp logo

free-note's Introduction

Free Note

Purpose

  • record notes freely

    • formats
      • plain text
      • also rich text
      • especially codes for programers
    • automatic saving - don't worry about losing content
      • auto saving to local / browser or the server?
      • saving to the browser's IndexedDB
      • history
  • store notes freely with open API

    • on the cloud
    • or on the PC/browser
  • search notes freely

    • search everything in the notes
  • security

    • safe login/register
    • safe notes access
    • everything in the notes are secrets
  • share

    • share some notes(mirror) to friends

Architecture

Basicly, server and client two systems will cooperate:

  • server provides the note service:
    • authenticate
      • register
      • login
      • logout
    • folder
      • create
      • delete
      • rename
      • alter order
      • alter parent
    • note
      • create
      • delete
      • update
      • update history ~~
    • attachment (for what cannot embled into the note)
      • upload (create)
      • delete
    • search
      • conditions: note name, folder name, create time, last update time
      • search in history ~~
    • DB
      • use MySQL
      • use filesystem??
      • use MongoDB??
  • client provides the user interface:
    • single page APP(no refreshing whole page)
    • mobile browser is also compatible
    • folder: tree view
    • note:
      • block tumblenail
      • view mode
      • edit mode
    • note editor:
      • open to any editor
      • TinyMCE
      • Markdown editor..
    • auto saving to browser's indexedDB
    • offline mode
      • sync from the server
      • sync to the server
      • detect and resolve conflicts
      • avoid concurent editing??
    • ...

Server API

The server provides restful JSON service.

  • authenticate:
    • POST ./session Begin/create a session when the note service was firstly visitied. REQUEST:
{
	// nothing needed, the server should create a session 
}
RESPONSE:
200: // the HTTP status OK
{
	sid: 'the session ID(sid)', // this is the id which would be used everywhere
}

  • POST ./register REQUEST:
{
	sid: 'the sid'
	user: "someone", 
	password: "some encrypted token",
}
RESPONSE:
200: 
{
	
}

free-note's People

Contributors

clarence-pan avatar

Watchers

James Cloos avatar  avatar

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.