GithubHelp home page GithubHelp logo

isabella232 / note-maps Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/note-maps

0.0 0.0 0.0 14.7 MB

A personal knowledge base intended for use on mobile devices.

License: Apache License 2.0

Go 63.18% Shell 0.97% Java 0.45% Objective-C 1.18% Dart 13.40% Kotlin 0.03% Ruby 4.55% Swift 2.96% CMake 2.83% C++ 1.45% C 0.55% Makefile 4.43% Nix 3.71% HTML 0.31%

note-maps's Introduction

Note Maps

GoDoc Go Report Card Build Status Coverage Status

Note Maps is a personal knowledge base intended for use on mobile devices. Notes are structured a bit like the contents 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 images, videos, etc. 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, it will be possible to for topic maps to be imported from or exported to standard data formats including XTM (ISO/IEC 13250-3:2013) and JTM (JTM 1.1).

Status: Exploratory. Note Maps is in an experimental stage and is not yet useful for taking notes. Many design and implementation options are being explored.

This is not an officially supported Google product.

Mobile App

The mobile app is a Flutter front end with a UI focused on entering and organizing notes.

Code paths:

  • flutter/nm_app

Roadmap

v0.next:

  • Notes are stored in a structure that might become isomorphic with topic maps, initially supporting at least "occurrences" and "names".
  • Notes can be edited through a rich-text editor.
  • Notes can be deleted.
  • All existing notes can be found.
  • UI includes warnings about the fragility of local data storage.

v0.next+1;

  • Notes can represent "associations" with "roles".
  • Notes can have one or more "types", where each type is a note.
  • Notes can have "scope", where a scope is a set of notes.

Command Line Interface

Emphasis on plain text representations of notes, plausible integration with text editor, and client-side-encrypted peer-to-peer storage.

Code paths:

  • ./cmd
  • ./notes

Roadmap

Development

Install Git Hooks

This repository comes with a Git pre-commit hook in ./githooks. Install it: cp ./githooks/pre-commit .git/hooks/pre-commit.

Manage Git Subtrees

Vendored code goes in the third_party directory, preferably using git subtree. For example:

git remote add third_party/zefyr https://github.com/memspace/zefyr.git
git fetch third_party/zefyr
git subtree add --prefix third_party/zefyr third_party/zefyr master --squash

How to update a subtree:

git fetch third_party/zefyr master
git subtree pull --prefix third_party/zefyr third_party/zefyr master --squash

Development Environment

Requirements:

  • GNU Make

Optional:

  • Flutter. To re-use an existing Flutter installation, create a config.mk file in the root of this repository and set FLUTTER_ROOT to the location of your Flutter installation. However, note the current version of Flutter in FLUTTER_ROOT will be modified by make download.

If you've got the time and the disk space, Nix is a neat way to get a consistent set of build tools for reproducible builds:

  1. Install Nix.
  2. Copy nix/shell.nix to the root of this repository.
  3. In the root of this repository, run nix-shell to launch a shell that includes all build dependencies. The first time this is done, it will take a few minutes.

You can use direnv to make this easier:

  1. install direnv.
  2. In the root of this repository, run cp nix/envrc .envrc and direnv allow.
  3. Optionally install nix-direnv to cache the nix-shell environment.

Building

Most tasks are automated through a GNU Make makefile in the root of this repository:

gnumake format lint test build

Installing and running the Flutter app is best done directly through the flutter command.

cd flutter
cd nm_app
flutter run

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 2020 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.

note-maps's People

Contributors

dependabot[bot] avatar jtacoma avatar sharechiwai 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.