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).
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.
- 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
- 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
- Topic maps can be exported and imported
- Data entry is reasonably easy
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.