on master help sign in
Merge pull request #1079 from urbit/mike/urbit-notes

Add urbit notes proposal

commit4c9c22b1e8c1da2571f6295516ca1272e7d70eae authormikeosborne <mike@urbit.org> dateWed 25 Aug 2021, 15:40 (5 years ago) parent6d88007bf769e0
1 file changed+102
content/grants/urbit-notes.md+102
content/grants/urbit-notes.mdnew file+102
@@ -0,0 +1,102 @@
1++++
2+title = "Urbit Notes"
3+date = 2021-08-25
4+[taxonomies]
5+grant_type = ["Proposal"]
6+grant_category = ["App Dev: Other"]
7+[extra]
8+image = ""
9+description = "Bring your note-taking game into the 31st century!"
10+reward = 2
11+assignee = "~ribben-donnyl"
12+grant_id = "P0070"
13+completed = false
14+link = ""
15++++
16+
17+## Note-take 3000 (working title)
18+
19+## Purpose
20+
21+- Collect random thoughts or text/code you'd like to share.
22+- Save them on your Urbit ship, so they're accessible everywhere.
23+- Allow for easy sharing of code, pastebin style.
24+
25+## Personal Goals
26+
27+- Increase my person human capital by writing production code in Hoon
28+- Add to the amount of mobile development in the greater Urbit ecosystem
29+- Get an Urbit app in the Apple app store.
30+
31+## End Product
32+
33+### A native iOS app for taking notes
34+
35+- This app will be written in SwiftUI, which seems to be ready for Prime Time.
36+- Notes will be stored as a string of text with a title.
37+- Notes will be stored both local to the device and on a ship.
38+- Communication with ones ship via the Swift airlock library.
39+- Notes will be stored on ships with graph-store.
40+- Sharing of notes will be done with Publish.
41+
42+### Documentation
43+
44+- Not a primary end product, but I will write up my notes on developing the app, which I believe will be of interest to the community. (This will also be my way of dog-fooding the notes themselves.)
45+
46+### Possibilities for the future:
47+
48+- A native Mac app for taking notes (I will investigate how much code can be reused and how hard this will be)
49+- A landscape tile for interacting with notes via the web (note: I have done almost zero web front-end, so this might be better done by someone else)
50+
51+## User Stories
52+
53+As a user, I would like to:
54+
55+- Log into my ship with a URL and +code
56+- Logout of my ship
57+- Set the title of the note (UX note: The title of the note will, by default, be set to the first line the user types, but should be editable to something else.)
58+- See a list of notes that I have written, sorted by "last-modified"
59+- Select a note from a list of notes, and edit its contents
60+- Search the list of notes for some keyword
61+- Delete a note
62+- Write using markup and have the text rendered appropriately on screen
63+
64+As a forgetful person, I would like to:
65+
66+- Write a note in my iPhone
67+
68+As a less-technical user, I would like to:
69+
70+- Disable markup entirely, so I don't get bold text every time I type an asterisk.
71+
72+As a developer, I would like to:
73+
74+- Make a note with some code in it
75+- Create an HTTP link to the code
76+- Share the HTTP link via the built-in iOS sharing functionality
77+
78+## Technical requirements
79+
80+Allowing edits to the same note from different sources opens up the possibility of data getting corrupted and/or clobbered. Thus, when logging in from a device, the ship should generate some kind of token and should only allow one device at a time to be logged in.
81+
82+## Resources
83+
84+I will probably need someone with graph-store experience to discuss my approach and offer suggestions.
85+
86+## Milestones
87+
88+### Milestone 1: Develop graph-store for notes
89+
90+Payment: 1 Star
91+
92+### Milestone 2: Develop IOS app
93+
94+Payment: 1 Star
95+
96+### Milestone 3: Coordinate beta testing
97+
98+Payment: 1 Star
99+
100+### Milestone 4: Publish on app store
101+
102+Payment: 1 Star