note-maps

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2019 License: Apache-2.0

README

Note Maps

GoDoc Go Report Card Build Status Coverage Status

Note Maps is a personal knowledge base designed for use on mobile devices. The interface is modeled after the pages of a dictionary, or the index at the back of a book.

Each note map is a collection of information about a set of topics. Any topic can be described with a set of names, types, and miscellaneous notes that may include definitions, timestamps, or links to other kinds of media. Topics may be connected to each other through associations, and any association may itself be described as another topic. Even the role played by a topic in an association can, itself, be described as a topic.

This model is isomorphic to the Topic Maps Data Model defined in ISO/IEC 13250-2:2006. With Note Maps, topic maps can be imported from or exported to standard data formats including XTM (ISO/IEC 13250-3:2013) and JTM (JTM 1.1).

Architecture Overview

The mobile app is a Flutter front end with a UI focused on entering and organizing notes. Notes are stored through a Go backend in a Badger database on local storage, where they can be included in system backups.

Screenshots

screenshot of library page screenshot of topic page with speed-dial actinos screenshot of topic editing page screenshot of browsing page

Plan

Roadmap to v0.1
  • Partial Go implementation of deserialization from CTM
  • Partial Go implementation of data storage for topic maps
  • Flutter native channel for communication with data storage
  • Minimal Flutter front-end that uses native channel to communicate with Go
  • Minimal UX research, recorded in this repository at docs/ux.md
  • Wireframe Flutter front-end with navigation
  • Topic maps can be created
  • Names can be created and edited
  • Notes can be created and edited
  • Topics added to a topic map can be reviewed
  • Deletion of topic maps works correctly in the UI
  • Adding, editing, and deleting names and notes works consistently
  • UI includes warnings about data storage, especially deletion
Roadmap to v0.2
  • Associations and roles can be entered
  • Associations involving a topic can be found from the topic page
  • Browsing a topic map supports viewing all data entered in that topic map
Roadmap beyond
  • Topic maps can be exported and imported
  • Data entry is reasonably easy

Source Code Headers

Every file containing source code must include copyright and license information. This includes any JS/CSS files that you might be serving out to browsers. (This is to help well-intentioned people avoid accidental copying that doesn't comply with the license.)

Apache header:

Copyright 2019 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

This is not an officially supported Google product.

Directories

Path Synopsis
kv
Package kv provides some useful abstractions over local key-value storage.
Package kv provides some useful abstractions over local key-value storage.
badger
Package badger providers a Badger-backed implementation of kv.Txn.
Package badger providers a Badger-backed implementation of kv.Txn.
cmd/kvschema/bindata
Package bindata Code generated by go-bindata.
Package bindata Code generated by go-bindata.
examples/docs
Package docs defines a schema for storing documents in a kv.Txn.
Package docs defines a schema for storing documents in a kv.Txn.
kvtest
Package kvtest provides some utilities to help test packages that use kv.
Package kvtest provides some utilities to help test packages that use kv.
memory
Package memory provides an in-memory implementation of kv.Txn.
Package memory provides an in-memory implementation of kv.Txn.
Package tmaps defines a vocabulary of simple types and common constants that related packages can use to share topic maps and topic map items.
Package tmaps defines a vocabulary of simple types and common constants that related packages can use to share topic maps and topic map items.
ctm
Package ctm implements decoding from the CTM format.
Package ctm implements decoding from the CTM format.
ctm/internal/lex
Package lex implements lexing for the CTM data format.
Package lex implements lexing for the CTM data format.
internal/lex
Package lex implements common lexing utilities.
Package lex implements common lexing utilities.
mobileapi
Package mobileapi is intended for use with gomobile.
Package mobileapi is intended for use with gomobile.
pb
Package pb defines protocol buffer message types intended for use in tmaps APIs.
Package pb defines protocol buffer message types intended for use in tmaps APIs.
pbapi
Package pbapi implements an API based on protocol buffer messages.
Package pbapi implements an API based on protocol buffer messages.
tmdb
Package tmdb is an application database library for storing topic maps.
Package tmdb is an application database library for storing topic maps.
tmdb/models
Package models implements storage and retrieval of topic maps in a local key-value store using package kv.
Package models implements storage and retrieval of topic maps in a local key-value store using package kv.
tmdb/models/internal/pb
Package pb includes protocol buffer message types.
Package pb includes protocol buffer message types.
tmql
Package tmql implements decoding TMQL queries.
Package tmql implements decoding TMQL queries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL