forked from judges/acani
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.taskpaper
executable file
·188 lines (160 loc) · 5.83 KB
/
TODO.taskpaper
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
v. 1.0.0:
AppDelegate:
Life Cycle:
- On launch, set myUser if FBConnection exists.
- Else, redirect to WelcomeView.
Location:
- Make a global function to get location asynchronously.
- Check location every 3 minutes; send to server if greater than 3 miles from last sent location.
WelcomeView: @Matt
Shown on first log in
- Design logo (at-sign); Put at top
- Add paragraph
- "Meet people nearby with similar interests."
- Add default & active FBConnect button image backgrounds
- Add notes below FBConnect button:
- [Your privacy](link/to/privacy-policy) is 100% protected.
- Only stories you approve will be published.
- You may completely remove acani & your info at any time.
- We verify that all users are real.
- Add "Connect Anonymously" button below FBConnect button.
PrivacyPolicyView: @Matt
Modal view linked to from the WelcomeView
- Simple textView with userInteraction disabled.
- Model after Lovers privacy policy.
Point System:
- FConnect: 10 pts
- Post photo: 10 pts
- Send msessage: 2 pts
- Reply to message: 1 pt
InterestsView: @Matt
List of interests
- My Interests / All Interests
- Nested lists of interests
Server:
- Sinatra & MongoDB serve collection as JSON
UsersView:
- LoadMore
- Settings button in upper right.
- Filtering
- Handle empty JSON array response
ProfileView:
PhotoView:
- Serve 2X photos for high-res devices
- Cache large photos in filesystem
Chat:
Server:
node.js & redis
- Store messages in MongoDB
View:
- See earlier messages (pagination)
Future Versions:
WelcomeView:
- Split testing with NSURLConnection to maximize % of users that connect via Facebook
- Design & add background image like SCVNGR's
LauncherView:
Like the Facebook iPhone app
- Account button in upper left
- Logout
- Settings
- Icons
- Interests
- Messages
- Profile
InteresteView:
- List all interests
- My Interests / All Interests
- Add pictures
UsersView:
- Search by keyword or username
MessagesView:
Shows all messages, like iPhone's native Messages app
- Rewrite chat server
ChatView:
- Fix rotation bug
- Add receivers
Next:
- User profile & settings storage
- Users tableView
- Add conditional timestamp support
Refactor:
- Write function addMessage:message for send & receive
- How should we be fetching messages?
- Mark messages as read all at once instead of inside tableCell function.
Pages:
- Launcher View: add/search new people/groups to your launcher; rearrange; log out
- UsersView: photo grid w/ flags; header & iAd footer
- PhotoView: profile photo & info; favorite, block, & chat buttons
- ProfileView: edit profile fields, filters, & groups; edit group specific settings
- ChatView: chat; more button to send location, photo, clear chat. Push notifications
- Interface w/ Network Server. FBConnect & Twitter. Test & final touches
Server:
Sinatra & mongoDB
- Handle Block & Favorite buttons
- Make Team Page
- Create user if doesn't yet exist: find({ :device_id: id }); update location.
- Update profile info & photo
Chat Server:
node.js & redis
- Respond with new messages on connect
- Send location
- Send photo
Users:
- TableView
- Refresh
Put User info on Photo View:
- Get User info from User instance created from JSON
- Make it just like Grindr for now, except keep header the bluish-gray color it is now, not yellow
- Include Chat, Favorite, and Block buttons
Load Thumbnail View:
- Load JSON Users into NSMutableArray and load into tableView
- For each User object, load thumbnail photo:
- First, randomly load different shades & versions of default (blank) photo
- Show spinning dashes to signify that thumbnail is in the process of being loaded
- Add flair: username, red number, star, green dot, blue & yellow border/background
- Add refresh button (spin) & load more guys (disable)
ChatView:
- ChatContentHeader Buttons: Call, Contact Info/Add to Contacts, [Load Earlier Messages]
- Send photos, video, location.
- Edit: delete, forward, clear all
- Put each timestamp in its own cell
- Rebuild ChatInput & ChatBar with graphics, not background images
- Support landscape orientation. See SMS Bubbles app
- Touch ChatContentView to close keyboard
- Like Facebook chat, twitterfon show a small thumbnail of profile photo next to each message
- Tap and hold (or double-tap) on table-cell highlights msgText for copying
- sets backgroundViewSelected
- may require redesign of cell
- Make timestamps separate cells
- Message sending progress bar at top of navbar
- Message animation on send from msgInput to chatContent
Fix chatInputView bugs:
- Hit return x-times and then backspace x+1-times. Sometimes cursor jumps.
- Type a word, hit return, hit backspace. Sometimes weird word suggestion is made.
Recurring:
- Push to Git after adding each new feature. Make sure it builds first.
- Keep TODO, README (getting started, etc.), RECIPES, HISTORY, etc. up to date
Refactoring:
PhotoView:
- Make a captionLabel class.
ManagedObject:
- Profile & Interests: Abstract findById methods into one (with Category?).
RefreshableViewController:
- Make function displayRefreshButton(target, title, selector).
- InterestsViewController & UsersViewController
Style:
- Make every line max 100 columns, like Three20.
NSURLConnection:
- Make generic Request class (like FBRequest) for saveProfile & join/leaveInterest.
Bugs:
- set breakpoint on malloc_error_break and click acani, then back.
Finance:
- Apply for EIN online
- Open acani bank account during lunch in NYC
- Link this bank account to iTunesConnect
Production:
- Deploy to acani.no.de
- Get affordable hosting (Amazon)
Get Matt Situated:
- get him a wireless card so he can use wireless on train
- Get to sleep by 9:30pm every night.