YEN Legacy Changelog, Timeline, and Goals (2016-2019)

I used to capture changes to the product in a canonical changelog but left all of that behind over the years.

I found an old archive and I wanted to resurface it, for posterity of course. It’s been untouched since I removed it publicly, but, it’s neat to look back on all of the work and updates over the years.

My last update on this blog, for YEN, is right here.


Our Story / Quick Summary

Here’s a quick overview of where we’ve been and our history as a project and our greater community!

  • 2016: John starts experimenting with YouTube.
  • 2017: John invites Peter to join him in his video experiment.
  • 2017: Peter launches the BiteSizeBitcoin YouTube channel and it starts growing quickly.
  • 2017, August: The Bitcoin Pub launches in an effort to support the growing needs of the YouTube community that Peter is building.
  • 2017, November: Decentralized TV YouTube channel launches as an effort to consolidate and execute against a wider vision for a bigger team of correspondents and video participants.
  • 2017, November: We launch our Patreon.com site to rally our co-builders together.
  • 2017, November: Officially incorporate the business (ROFLCOPTER, INC.) in the state of Delaware.
  • 2017, November: We finalize our first digital product, #B90X, a free, 90-day program to help introduce new community members to blockchain, cryptocurrency, and decentralized thinking.
  • 2018, January: CoinPuffs.com is released, built upon open-source data feeds for real-time updates on new projects and tokens.
  • 2018, January: We release another free educational product, The 10 Days of Bitcoin to help newbies learn the basics of bitcoin.
  • 2018, February: The concept of YEN is first conceived.
  • 2018, April: We release CryptoYum, a real-time news aggregator based on our community’s feedback. We also spent 1,000’s of hours on a native iOS version but killed that just before launch to focus on the more universal web-based experience.
  • 2018, May: We raise a round of venture financing to support the on-going building efforts.
  • 2018, August: Su joins the team and we celebrate the 1 Year Anniversary of The Bitcoin Pub!
  • 2018, October: We launch a Closed Beta version of YEN to a limited group of passionate, early co-builders and testers.
  • 2018, October: James joins the team.
  • 2019, January: Paul joins the team.

And the story continues…!


YENIVERSE Community Goals

Here, in the #YENiverse, we like having community-powered goals to keep things fun, exciting, and to stoke a little competition now-and-again!

For instance, we thought it would be neat to track our population size against some of the smaller countries in the world and see how we’re doing as we slowly and intentionally grow our platform:

Rank Name 2019 Population Crossed
232 Vatican City 799 July, 2019
231 Tokelau 1,340 September, 2019
230 Niue 1,615
229 Falkland Islands 3,377
228 Montserrat 4,989
227 Saint Pierre and Miquelon 5,822
226 Saint Barthélemy 9,847
225 Nauru 10,756
224 Wallis and Futuna 11,432
223 Tuvalu 11,646
222 Anguilla 14,869
221 Cook Islands 17,548
220 Palau 18,008
219 British Virgin Islands 30,030
218 Gibraltar 33,701
217 San Marino 33,860
216 Saint Martin 38,002
215 Liechtenstein 38,019
214 Turks and Caicos Islands 38,191
213 Monaco 38,964
212 Sint Maarten 42,388
211 Faroe Islands 48,678
210 Saint Kitts and Nevis 52,823
209 American Samoa 55,312
208 Greenland 56,672
207 Northern Mariana Islands 57,216
206 Marshall Islands 58,791
205 Bermuda 62,506
204 Cayman Islands 64,948
203 Dominica 71,808
202 Andorra 77,142
201 Isle of Man 84,584
200 Antigua and Barbuda 97,118
199 Seychelles 97,739
198 Tonga 104,494
197 United States Virgin Islands 104,578
196 Aruba 106,314
195 Saint Vincent and the Grenadines 110,589
194 Grenada 112,003
193 Micronesia 113,815
192 Kiribati 117,606
191 Curacao 163,424
190 Guam 167,294
189 Saint Lucia 182,790
188 Samoa 197,097
187 Sao Tome and Principe 215,056
186 Mayotte 266,150
185 French Polynesia 279,287
184 New Caledonia 282,750
183 Barbados 287,025
182 French Guiana 290,832
181 Vanuatu 299,882
180 Iceland 339,031
179 Martinique 375,554
178 Bahamas 389,482
177 Belize 390,353
176 Guadeloupe 400,056
175 Brunei 433,285
174 Malta 440,372
173 Maldives 530,953
172 Cape Verde 549,935
171 Suriname 581,372
170 Western Sahara 582,463
169 Luxembourg 615,729
168 Montenegro 627,987
167 Macau 640,445
166 Solomon Islands 669,823
165 Bhutan 763,092
164 Guyana 782,766
163 Comoros 850,886
162 Reunion 888,927
161 Fiji 889,953
160 Djibouti 973,560
159 Swaziland 1,148,130
158 Cyprus 1,198,575
157 Mauritius 1,269,668
156 Timor-Leste 1,293,119
155 Estonia 1,325,648
154 Equatorial Guinea 1,355,986
153 Trinidad and Tobago 1,394,973
152 Bahrain 1,641,172
151 Latvia 1,906,743
150 Guinea-Bissau 1,920,922
149 Slovenia 2,078,654
148 Macedonia 2,083,459
147 Lesotho 2,125,268
146 Gabon 2,172,579
145 Botswana 2,303,697
144 Gambia 2,347,706
143 Namibia 2,494,530
142 Lithuania 2,759,627
141 Qatar 2,832,067
140 Albania 2,880,917
139 Puerto Rico 2,933,408
138 Jamaica 2,948,279
137 Armenia 2,957,731
136 Mongolia 3,225,167
135 Bosnia and Herzegovina 3,301,000
134 Uruguay 3,461,734
133 Eritrea 3,497,117
132 Georgia 3,996,765
131 Moldova 4,043,263
130 Croatia 4,130,304
129 Kuwait 4,207,083
128 Panama 4,246,439
127 Mauritania 4,525,696
126 Central African Republic 4,745,185
125 New Zealand 4,783,063
124 Ireland 4,882,495
123 Liberia 4,937,374
122 Oman 4,974,986
121 Palestine 4,981,420
120 Costa Rica 5,047,561
119 Norway 5,378,857
118 Republic of the Congo 5,380,508
117 Slovakia 5,457,013
116 Finland 5,532,156
115 Denmark 5,771,876
114 Singapore 5,804,337
113 Turkmenistan 5,942,089
112 Kyrgyzstan 6,415,850
111 El Salvador 6,453,553
110 Nicaragua 6,545,502
109 Libya 6,777,452
108 Lebanon 6,855,713
107 Bulgaria 7,000,119
106 Paraguay 7,044,636
105 Laos 7,169,455
104 Hong Kong 7,436,154
103 Sierra Leone 7,813,215
102 Togo 8,082,366
101 Israel 8,519,377
100 Switzerland 8,591,365
99 Serbia 8,772,235
98 Papua New Guinea 8,776,109
97 Austria 8,955,102
96 Tajikistan 9,321,018
95 Belarus 9,452,411
94 Hungary 9,684,679
93 Honduras 9,746,117
92 United Arab Emirates 9,770,529
91 Sweden 10,036,379
90 Azerbaijan 10,047,718
89 Jordan 10,101,694
88 Portugal 10,226,187
87 Greece 10,473,455
86 Czech Republic 10,689,209
85 Dominican Republic 10,738,958
84 South Sudan 11,062,113
83 Haiti 11,263,077
82 Cuba 11,333,483
81 Bolivia 11,513,100
80 Burundi 11,530,580
79 Belgium 11,539,328
78 Tunisia 11,694,719
77 Benin 11,801,151
76 Rwanda 12,626,950
75 Guinea 12,771,246
74 Zimbabwe 14,645,468
73 Somalia 15,442,905
72 Chad 15,946,876
71 Senegal 16,296,364
70 Cambodia 16,486,542
69 Syria 17,070,135
68 Netherlands 17,097,130
67 Ecuador 17,373,662
66 Guatemala 17,581,472
65 Zambia 17,861,030
64 Kazakhstan 18,551,427
63 Malawi 18,628,747
62 Chile 18,952,038
61 Romania 19,364,557
60 Mali 19,658,031
59 Burkina Faso 20,321,378
58 Sri Lanka 21,323,733
57 Niger 23,310,715
56 Taiwan 23,773,876
55 Australia 25,203,198
54 North Korea 25,666,161
53 Ivory Coast 25,716,544
52 Cameroon 25,876,380
51 Madagascar 26,969,307
50 Venezuela 28,515,829
49 Nepal 28,608,710
48 Yemen 29,161,922
47 Mozambique 30,366,036
46 Ghana 30,417,856
45 Angola 31,825,295
44 Malaysia 31,949,777
43 Peru 32,510,453
42 Uzbekistan 32,981,716
41 Saudi Arabia 34,268,528
40 Morocco 36,471,769
39 Canada 37,411,047
38 Poland 37,887,768
37 Afghanistan 38,041,754
36 Iraq 39,309,783
35 Sudan 42,813,238
34 Algeria 43,053,054
33 Ukraine 43,993,638
32 Uganda 44,269,594
31 Argentina 44,780,677
30 Spain 46,736,776
29 Colombia 50,339,443
28 South Korea 51,225,308
27 Kenya 52,573,973
26 Myanmar 54,045,420
25 Tanzania 58,005,463
24 South Africa 58,558,270
23 Italy 60,550,075
22 France 65,129,728
21 United Kingdom 67,530,172
20 Thailand 69,625,582
19 Iran 82,913,906
18 Turkey 83,429,615
17 Germany 83,517,045
16 DR Congo 86,790,567
15 Vietnam 96,462,106
14 Egypt 100,388,073
13 Philippines 108,116,615
12 Ethiopia 112,078,730
11 Japan 126,860,301
10 Mexico 127,575,529
9 Russia 145,872,256
8 Bangladesh 163,046,161
7 Nigeria 200,963,599
6 Brazil 211,049,527
5 Pakistan 216,565,318
4 Indonesia 270,625,568
3 United States 329,064,917
2 India 1,366,417,754
1 China 1,433,783,686

We are pulling our data from World Population Review.


YEN Product Changelog

Product updates, powered by our amazing community!

The goal with our changelog is to capture all of the work that we’ve done to build YEN, starting from the very beginning. This way we have not only a record of our collective accomplishments so we can celebrate our progress but also to increase the level of transparency into the process as we build.

In this way, our changelog is a bit different than more traditional ones because we’re going to attempt to be a bit more specific with our notes (and definitely better than just a notice that reads: “We constantly improve our application to provide better service to our users.“…

We hope that you’ll see many of the changes, improvements, bug fixes, and feature updates that you’ll see are the very ones that YOU suggested! We love co-building with our community as it’s just a better way of building.

Thank you!

What is Your Software Development Lifecycle?

Okay, so, that’s a mouthful, for sure! But, from here on out you might start learning a thing or two about the process of designing and developing great software! The SLDC (or also called the “Software Development Process”) can look different based on the team and organization.

But what it is, essentially, is a framework of how ideas and concepts eventually become real software; it defines the tasks needed and the steps required to create working software. This often means developing a plan on how to develop, maintain, replace (or fix) the software. The goal is to not only produce something of value but also to help make the process, itself, better over time!

Our team specifically follows a plan that is broken down into 2 Week “Sprints” where we define the tasks we want to accomplish over those two weeks and also blocks out time to review the process itself.

Here’s what this looks day-to-day:

Week 1 (of 2)

  • Mon: Day #3 of Sprint Cycle (“SC”)
  • Tue: Day #4 of SC
  • Wed: Day #5 of SC
  • Thurs: Day #6 of SC
  • Fri: Day #7 of SC

Week 2 (of 2)

  • Mon: Day #8 of SC // Sprint Planning (Plan goals for next sprint, assign tasks)
  • Tue: Day #9 of SC // Business Requirements (Decide technical solutions matching business logic with engineering requirements) // Code Freeze – “Cinderella Deploy” (changes allowed up until midnight PST)
  • Wed: Day #10 of SC // Deploy to Development / Staging Branches
  • Thurs: Day #1 of New SC // Master Deploy from Staging to Live // Sprint Retrospective // Goals for Next Sprint
  • Fri: Day #2 of New SC

You’ll notice that we start a new Sprint Cycle on the 2nd Thursday of the 2nd week.

We plan on adding more context and material around our technical workflows over time but we hope you have learned a thing (or two) and find this type of thing not only interesting but perhaps even useful for your own projects (and those projects don’t have to necessarily technical in nature)!

Without further ado… here’s what our Sprints have looked like historically and the larger tasks that we attempted to work through!


Sprint 20 (Jan 28 – Feb 11, 2019)

Goals for this sprint are as follows:

  • Adjust Frontend to all API updates from Backend (continued work from Sprint 19)
  • Binance integration finalized, replay tx
  • Mobile version (development & markup)
  • Group Chat (in-progress)
  • Refactor separation of Coinbase ops (API)
  • Sync token and coin balances
  • Update webhook notifications (payments, account updates)
  • Updating Search in Buy/Sell workflow
  • Reposts

More details to come!

Sprint 19 (Jan 14 – 25, 2019)

Goals for this sprint are as follows:

  • Adjust Frontend to all API updates from Backend
  • Close out a ton of high and medium priority issues
  • Group chat
  • Mobile design markup and development
  • Finalize integration with Binance

Binance

  • Pull / push data via Binance modal
  • TX / Posts: Create posts with Binance TXs
  • Backend: Improve WebSockets Listener (handle rates, timeouts, crashes, etc)
  • Buy / Sell: Refactoring to separate Coinbase operations (a new API via Coinbase)
  • Sync user coin and token balances
  • Handle webhook notifications (payment methods, accounts, and cacheing)

Sprint 18 (Dec 21 – Jan 11, 2019)

This Sprint is specifically 3-weeks long instead of the typical 2, given the holidays!

Goals for Sprint 18 are as follows:

  • Continue working on Binance and Coincap integration
  • Update Coinbase for new transaction workflow
  • Admin Views for new Integrations
  • API refinement for sending / receiving fiat exchange rate(s)

Admin Panel

  • Update CoinCap currencies
  • Update Coinbase currencies
  • Update Binance currencies
  • Multiple bux fixes and other improvements
  • Custom messages

Binance

  • Test creation of order via API
  • Finalize Buy / Sell orders
  • Finalize transactions and posts in YEN
  • Refactor tx tables handled by Binance
  • Improve communiation with Binance WebSockets Listener (handle rate limit, timeout, crashes, and more)
  • Connect to admin panel

Coinbase

  • Refactor separate ops (separate API for Coinbase)
  • Sync user balances and token values
  • Get latest prices requests updated
  • Filter on wallet types
  • Connect to admin panel

Updates and Bug Fixes

  • Currency widget setup in user settings
  • Get Fiat Exchange data and rates API
  • Build out history of currencies via CoinCap
  • Implement new listeners

Sprint 17 (December 8 – 21, 2018)

Goals for Sprint 17 were as follows:

  • Continue working on Binance and Coincap integration
  • Update Coinbase for new transaction workflow
  • Admin Views for new Integrations
  • API refinement for sending / receiving fiat exchange rate(s)

Sprint 17 (and 18 and 19 most likely) are still heavily focused on getting our new integrations out and launched and so the next 2-3 sprint cycles will focus almost exclusively on those core elements.

This means that much of Sprint 17/18/19 will be a continuation of Sprint 16 in scope.

Admin Views

  • A new Announcement feature was built allowing us to communicate globally with our community
  • Ability to create a new announcement with details (text, for now) with expiration dates
  • Adding text editor for content creation
  • Updating abuses
  • Updating pagination on views
  • Fixed 500 errors and error handling
  • Adding internal search schema
  • Results aren’t displayed in the list when admin switches pages and uses Search
  • Admin actions for posts, users updated
  • Fix date picker
  • Icon isn’t uploaded for PACcoin currency when admin filters by symbol
  • Change icon for Admin Actions tab
  • NaN is displayed in row’s range when admin clicks on Post link in Admin Actions tab
  • New icon isn’t uploaded on the page if previous icon was already uploaded in modal window
  • Tags/mentions in the posts are displayed as HTML on the Posts page

Binance and Coincap

  • Working on updates and sync process for coin and token pairs
  • Finalizing authentication to Binance
  • Updating Coincap charting for backend and frontend
  • Add cursor pointer to exchange tabs

Updating Coinbase Workflow

  • Fiat amount isn’t displayed in Confirmation popup when user makes buy tx
  • Buy tab isn’t displayed when user makes buy tx and clicks on Start another buy
  • Make selects for Buy/Sell tabs predefined on Coinbase tab

API Refinement, Bug Fixes

  • Refining chat sync for deactivated / deleted users
  • Updating pagination
  • Updating security protocol(s) for 2-factor
  • User profiles should be clickable in messages
  • Max URL length set (3,800 chars)
  • Error handling improved, 500 / 422 errors on buy/sell
  • Markup of buy/sell workflow update
  • Remove restriction to change character in registration in nickname for user
  • Incorrect parsing of mentions in posts
  • More Blacklist entries updated into database
  • Change date format in Created at column
  • Metabase analytics built
  • Unify send validations for blocked/deleted/non-confirmed users
  • Request is sent and 422 error is received when user fills amount field and then deletes it
  • Deleted user’s avatar is displayed in Messages popup
  • Post with livestream link does not appeared in Livestream tab
  • Follow:false is received if user was following another user and was deleted

Sprint 16 (November 24 – December 7, 2018)

Goals for Sprint 16 were as follows:

  • Finalizing New Buy/Sell with Scalable Interface
  • New Tokens Widget with Rates (Settings via User) with Coincap
  • Admin Panel Additions for New Coins (Coincap)
  • Global Announcement Notification & Admin Management
  • Binance Proof-of-Concept
  • Bug Fixes and Improvements

We began Sprint 16 with some very, very large goals (e.g. tasks) in mind and we were unable to complete most of them in a single sprint cycle. This was expected so we’ll continue to work on these items into Sprint 17 above.

What we were able to do is knock out a ton of bugs, spend time optimizing the overall system, and making significant improvements app-wide.

Admin Panel

  • Special post type for announcements concepted, starting to build this and next sprint. Announcements will include title and text but nothing more, at least for now. Should be slightly different color and should be able to be closed by the user.
  • Build out live deploy activities, work on docs and droplets
  • Update admin / user features
  • Shared functionality, search, and filtering
  • Optimize abuses, blocked users, pages for deleted users
  • New invitation codes for users by group or by individual
  • Update blacklist
  • Second page with search results is displayed when admin switches page and makes filtration on Users tab
  • Add dropdown to Type column
  • Update admin API, get UUID, add to JWT
  • 500 error thrown on performing search via ID using non-numeric symbols
  • Create Alerts for the different actions in admin
  • Sometimes 500 error is received for login/adding invitations/search page
  • Abuses: option to post, modal window
  • Post isn’t deleted when admin clicks on Delete icon in Posts tab
  • Add 2 reasons to the filter on Abuses page
  • Start_at and End_at with null are send in request when admin changes date in the row
  • Handle error messages for admin panel
  • URL doesn’t fit in the column in Posts tab when user adds post with long URL
  • Column’s width isn’t specified in styles – content is stretched vertically on Abuses page
  • First list isn’t displayed when admin makes search, switches the list and clears results
  • Disable icons for deleted post in Posts tab
  • Set max width for First, Last Name and Nickname columns on Posts page
  • Change icon fo block/unblock users
  • Add favicon to admin panel
  • 422 error is received for api / posts / abuse when user chooses only reason in Report post popup
  • Corresponding results aren’t displayed when admin filters users by status/Unblock at
  • Header’s height is stretched when announcements are appeared
  • Previous searching state is updated on Blacklist page when admin switches on another tab and return back
  • Make chosen date highlighted in date picker

Bug Fixes / Improvements

  • Counter updating – 2 numbers by slash for Replays and Followers
  • Moving buttons Edit profile and Settings
  • Make tab text more obvious and shift to left
  • Blocked user – profile view, a strip on the top with text: “Your account is currently Deactivated. Please contact support@yen.io if you have any questions.”
  • Page for deleted user
  • Icon for new cryptocurrency BAT
  • Widget trending topics: remove post counter under tags
  • New 404 Page
  • Distinguish the posts which are under processing
  • Create icon for USD coin
  • Tool tip for counters / button interactions with posts
  • Incorrect displaying of date on profile screen
  • Nicknames with “-” aren’t clickable
  • User mention in post is not redirects to his profile
  • Disable email field in Settings for blocked user
  • Login screen: notify user if cap locks is on while typing password
  • Show what user’s previous usernames were
  • Add comment to transaction
  • Rename “Broadcasts” to “Livestreams”
  • Quick follow in popover
  • Limit the characters in username
  • Deleted user’s avatar is displayed in Messages popup
  • Display text about successful purchase above in popup
  • Make user’s avatar clickable on Messages and New Message popups
  • Change text in New Message popup when user is not found
  • Reduce height of exchange tabs and selects
  • Change text on the strip and in popup for blocked user
  • Fix a few login / logout issues

Sprint 15 (November 9 – 23, 2018)

Goals for Sprint 15 were as follows:

  • Finalizing Messages
  • Finalizing Admin (Posts, Users, Abuse)
  • Buy/Sell Redesign (Will start and finish in Sprint 16)

Messages

  • Ground-up Build using Node.js, MongoDB, Mongoose, Express, Socket.io, Docker, Ruby, etc., etc., etc….
  • Build API for updating user, getting user info from backend, create users table

Admin Panel

  • Invitations page for admin
  • Invitation Codes for Private Beta
  • Blacklist
  • Delete, Moderate messages
  • Abuse management

Bug Fixes / Improvements via BETA Testers

  • Remove Intercom because it sucks
  • Build Custom Metrics Views via AppSignal
  • Invalid currency format error on tx replay
  • BAT hardcode (buy / sell)
  • BAT hardcore (widget)
  • Add USD Coin (buy / sell)
  • Add USD Coin (widget)
  • Prevent logging in / out while accessing /login
  • Incorrect display of pictures in post
  • Reduce size of notification
  • Feed is refreshed when user opens any post and then closes it (for all filters except All tab)
  • Post are not displayed for Global/MyFeed – All filter
  • Author’s profile isn’t opened when user clicks on author’s avatar/username from post’s popup
  • Comprehensive db backup in live via DO
  • Use ruby-jemalloc docker image to reduce memory usage
  • Add loader to image upload / post (https://vue-content-loader.egoist.moe/)
  • Make hashtag in TX clickable
  • Transactions are not displayed in Global =>Transactions filter
  • Configure DevOps Channel in Slack
  • YEN logos are not displayed in emails

Sprint 14 (October 25 – November 8, 2018)

Goals for Sprint 14 were as follows:

  • Build the backend for Messages (Will start and finish in Sprint 15)
  • Admin Panel (Will start and finish in Sprint 15)

Messages

  • Core functionality built-out (1-to-1 Direct Messages)
  • Includes real-time notifications, awareness indicators, post/delete

Admin Panel

  • Add / Manage admins and moderators
  • Blacklists for usernames
  • Registration Codes (Individual and Groups with timeouts)

Bug Fixes / Improvements via BETA Testers

  • Impossible to repost a post
  • Distinguish the posts which are under processing
  • Placeholders for post with processing images
  • Update the text in the field for different sorting
  • Fix issue with ‘Question Marks’ in post (?)
  • Impossible to add long link to the post

Sprint 13 (October 11 – 25, 2018)

Goals for Sprint 13 were as follows:

  • Bug Fixes / Improvements via BETA Testers
  • Add ZRX (Buy / Sell)
  • Add 2FA Improvements
  • Server Optimizations

Add ZRX (Buy / Sell)

  • Add ZRX to Transaction
  • Add ZRX Icon to Widget

Add 2FA Improvements

  • Add 2FA Reminder Popup
  • Should show after email confirmation
  • If user selects “I’ll Do This Later” we will remind them in 1 day
  • If user selects “I’ll Do This Now” then send them to settings page

Server Optimizations

  • Make, improve background jobs
  • Server stablity and performance upgrades

Bug Fixes / Improvements via BETA Testers

  • All the repeated tags within 1 post will be counted as 1
  • Add icon ZRX to transaction
  • Update trending tags widget
  • Update transactions to handle new Coinbase responses
  • Text updates
  • More text updates
  • Increase size limit for uploading image files (5MB to 20MB)
  • FE:Status for transactions in the field
  • Tablet improvements: Fix scroll on iPad
  • Search dropdown – arrows
  • Shortcuts: Close modal windows with the ESC key
  • Investigate 500 error due Coinbase verification
  • Image operations refactoring
  • Update typeahead API (If there are 2 hashtag options e.g. “btc” and “BTC” then typeahead API must return only latest option)
  • Tags and mentions: Make them register-independent (case sensitive #yeniverse #YENIVERSE, they should be the same tag)
  • Adding 2FA popup
  • Update txn posts to parse crypto currency name as a tag
  • Mentions and tags are not highlighted in repost comment
  • Non-case sensitive nicknames
  • Webpage is using significant memory (Mac)
  • Tablet improvements: Logo in 404 redirect to feed
  • Instant counter updating (not after page refresh)
  • Handle different url forms in the posts
  • Show counters in any case in any view (posts, tx, replay, fol)
  • Tool tip for counters/ button interactions with posts
  • Hardcode blacklist with nickname similar to core routes
  • Live server setup. Release activities and fixes.
  • SEO optimization – Parse manifest file for JS bundles to reuse frontend optimization
  • Impossible to mention youself
  • Like should be without delay
  • Auto-expand links to .gif images
  • The blocks with followers/followings aren’t aligned by height in User Profile
  • Disable graph on the Search page if the search is not related to currency
  • 2FA:Connect timing of pop-up displaying and user id
  • Show user info in bar on profile image hover
  • Forbid access to adding phone for non-confirmed user
  • Incorrect post ID – hide toast, show valid error in modal window
  • 2FA: Popup is shown for guest user
  • Terms of services: text update
  • JS error in console on log out action
  • Previous page isn’t displayed when user clicks on browser’s Back button from 404 page
  • Incorrect redirect on profile image click from settings
  • Registration form is overlapped with footer when user types invalid password and clicks on Continue button
  • Smoother scroll for iOS
  • Fix and improve background jobs performance + server stability
  • Refresh feed by clicking on Global tab
  • Align name and nickname for repost with comment
  • Update URL for TX History

Sprint 12 (October 8 – 11, 2018)

Goals for Sprint 12 were as follows:

  • Finalize BETA Server
  • Onboard BETA users
  • Don’t freak out… enjoy the ride.
  • Finalize Landing Page
  • Build New Workflows for Support, Bug Fixes

Fixes and Improvements

  • Prototype for Notification receiver for multiple users (Binance)
  • Investigate 24h period exchange rates empty charts
  • Chart should be adjusted to choosed cryptocurrency – UI: remember the choose coin in buy/sell – 422 response is received for /api/posts/alex when user clicks on avatar in post’s popup
  • Aggregation by likes moves up in the list of Notifications modal window although there is no new notification in aggregation
  • Continue button on Login form is disabled when user logs in right after 422 response is received for api/auth/login
  • Add retention policies to exchange rates influxDB series
  • Update WEBPAK configs (for proper work of routes) – Notifications enhancements
  • Likes / repost of transaction: Implement post opening in modal window
  • Likes / repost post with video/broadcast: In notification body should be video preview (currently only link)
  • Likes / repost post with image – add image preview in notification body
  • Comments: Implement post opening in modal window (preview in notification
  • Notification preview (drop down): Show only 5 last notifications
  • Mark all as read: Review implementation
  • Images and gif are not displayed in mail in iphone mail client
  • User could logged in with incorrect email format
  • Settings: Change button to Enable Authenticator in 2FA block when user removes phone number in Security tab
  • Registration – fields validation
  • Previews of avatars on Profile Page: Expand to larger version
  • Small superficial design fixes: Name and username are not aligned in pop-ups
  • Rename Broadcasts to Livestreams
  • “YEN” banner is not stretch to full page size
  • Incorrect behaviour of scroll in
  • Display corresponding cryptocurrency in Buy/Sell popup when click on cart in Exchange Rates widget
  • Settings: Call “api/auth/check” returns “true” for email with space
  • TX History: User’s own transactions are displayed in another user’s profile when user changes the username in the URL
  • Issue with scrolling the Likes List |
  • Embedded transaction post is empty in notification block if user has notification about like added to his transaction
  • Images in email are not showing
  • Align pop-up messages to center, reduce size
  • Double-check email confirmations

Sprint 11 (September 17 – October 5, 2018)

Goals for Sprint 11 were as follows:

  • Setup Production Server
  • 2FA Auth + Twilio
  • Deploy Beta
  • Big Bug Fix Party

Setup Production Server

  • Complete setup of production server
  • DNS

2FA Auth + Twilio

  • Refactor and test

Deploy Beta

  • Deploy with new CI
  • DNS

Big Bug Fix Party

  • Over 125 issues covered. We rock.
  • Browser test all-the-things

Sprint 10 (August 28 – September 14, 2018)

Goals for Sprint 10 were as follows:

  • Direct messages (fix the known issue)
  • Comments enhancement (expand, characters limit)
  • Settings (backend)
  • Search (add chart)
  • Continuous Integration (CI)
  • 2FA auth + Twilio
  • Confirmation e-mail (Registration) e-mail mark up
  • Google Analytics
  • SEO optimization

Direct messages

  • Continue to prototype models and API integrations

Comments enhancement (expand, characters limit)

  • Adding counter for character limitations
  • Resizing input area

Settings (backend)

  • Finalize all backend for settings page

Search (add chart)

  • Original charting via Coinbase

Continuous Integration (CI)

  • Determine CI tools
  • Create initial integrations with SDLC

2FA auth + Twilio

  • Add phone
  • On add, confirm via SMS via phone
  • Disable 2FA if phone is connected: Allow deactivation sequence
  • Settings: Enable or disable 2FA if you enter phone number

Confirmation e-mail (Registration) e-mail mark up

  • Add email markup on backend

Google Analytics

  • Frontend error handling
  • User analytics
  • Tracking and routing

SEO optimization

  • Optimize app bundle
  • Adding lazyload
  • Add GZIP
  • Hash to bundle to prevent browser cacheing

Sprint 9 (August 13 – 28, 2018)

Goals for Sprint 9 were as follows:

  • TRX History and Widget Last TRX status
  • Transaction flow (buy/sell – not happy path – add validation)
  • Notifications enhancement (required refactoring, post opening in modal window, ‘mark all as read’, etc.)
  • Likes/reposts – expand on post preview
  • Create plugins for messages
  • UI improvements (add spinners for different API calls, profile cover image)
  • Settings Page

TRX History and Widget Last TRX status

  • Tab includes the list of all transactions (sorting latest on the top)
  • This is not a scalable solution (per Binance)
  • Line: Icon / Transaction Details / Status
  • Status: In Progress / Approved / Cancelled
  • View by Default: All TRX from the latest on top, filtered by status (Created / in Progress / Approved / Cancelled)

Widget TRX:

  • Displays the latest TRX with status
  • After approval TRX should be displayed in widget for 30 seconds
  • It will only show the latest TRX
  • When the displaying TRX becomes approved we’ll poll the API for udpated state
  • Show more: User goes to TRX history page

Status Description:

  • In progress: TRX committed and processing (via Coinbase)
  • Approved: Final successful state of TRX
  • Canceled: Final state of TRX is unsuccessful

Transaction Flow (Buy / Sell, Add Validation)

  • API investigation: Error messages
  • Prepare designs for failures
  • Workflow for user to oAuth into Coinbase on Buy / Sell or Replay

Notifications Enhancement (Refactoring, post opening in modal window, ‘mark all as read’, etc.)

  • Likes/repost of transactio: Implement post opening in modal window
  • Likes/repost post with video/broadcast: In notification body should be video preview (currently only link)
  • Likes/repost post with image: Add image preview in notification body
  • Comment: Implement post opening in modal window (preview in notification)
  • Notification preview (drop down): Show only 5 last notifications
  • Mark all as Read: Implementation is complete

Likes / Reposts: Expand on Preview

  • Design is not complete, although behavior is similar to Twitter
  • When user opens post in preview (modal window) additional fields appear
  • On Like or Repost: Opens modal window with all users who liked / reposted the post
  • By clicking on icon (icons with users who liked my post): Goes to profile of user
  • All users in the list of ‘who liked / reposted’ my post should be clickable

Create plugins for messages

  • Create API plugins for possible implementations (PubNub, Chat Engin)
  • Move them to Vue
  • Improve security

UI Improvements

  • Add loading spinners for different API calls

Settings Page

  • Account Info and Coinbase Account
  • Coinbase: Show Name, Surname
  • Change password, with error messages and saving mechanics
  • Add security: Phone number and 2-Factor Authentication
  • Notification settings
  • Privacy Policy: Empty page for now (text TBD)
  • Forgot password

Sprint 8 (July 30 – August 10, 2018)

Goals for Sprint 8 were as follows:

  • Direct messaging: Increase chat security
  • Direct messaging: Delete messages, add time of message, load on scroll
  • Widget Trending Topics
  • Notifications: Aggregation and Filter
  • Landing Page

Direct Messaging: Increase chat security

  • A new direct chat gives temporary permission to user; when permission expirese, they will not be able to access chat

Direct messaging: Delete messages, add time of message, load on scroll

  • Done

Widget Trending Topics

  • Execute against design concept
  • Dynamic for 12 hours, 5 most often used tags in posts
  • Should update ever 1 hour, top 5 tags rotate out
  • Chart: 12 points (1 points / hour)
  • Arrows should compare the latest 2 inputs

Notifications: Aggregation and Filter

The types of notifications are as follows:

  • Likes user’s post
  • Repost of user’s post
  • Replayed transaction
  • New follower
  • Comment on user’s post (without aggregation)
  • @mentions user

The counter for notifications should aggregate by type (for example there are 3 likes and 1 comment, the user should get 2 notifications total)

Landing Pagepage enhencement (left panel: total transacted value, search, trending topics)

Left panel:

  • Total transacted value ($ equivalent of all buy/sell operations)
  • Total replays (amount of all replays of transactions)
  • Total subscribers (amount of all registered users)
  • Search should go to search page on input
  • Trending topics: The posts with max amount of likes within 2 last days

Right panel:

  • Login
  • Registration

Sprint 7 (July 16 – 27, 2018)

Goals for Sprint 7 were as follows:

  • Direct messaging (text only)
  • Autotests: Creation of all types of posts and reposts
  • Refactoring of reposts
  • Search (Algolia, backend)
  • Tags (Frontend)
  • Mentions (Frontend)
  • Binance Prototype for Notification Receiver for Multiple Users

Direct Messaging

Autotests: Creation of all types of posts and reposts

  • Automated testing of post creation, reposts

Refactoring of reposts

  • Data is quite large and unstable
  • Goal of refactor: Detect common structure in all types of posts and divide large functions into smaller, more modular buildsN

Search (Algolia, backend)

  • User enters text in search field, should should suggestions
  • User can tap suggestions to auto-complete (shortcut)
  • List suggestions matching username / surname or nickname
  • Search results show people and posts
  • Filters for search results in top menu

Tags (Frontend)

  • Done

Mentions (Frontend)

  • Done

Binance Prototype for Notification Receiver for Multiple Users

  • Done… looks legit af.

Sprint 6 (July 2 – 13, 2018)

Goals for Sprint 6 were as follows:

  • Comments
  • Responsive layout for tablet
  • Dislike removing
  • Pagination for posts (infinite scroll)
  • Tags (in posts)
  • Repost functionality
  • SEO optimization (finalizing)
  • Binance investigation
  • Bug fixes

Comments

  • User (logged in) can comment on any post or transaction
  • Clicking the “Comment” icon should open modal window
  • “Reply” adds @username, comma, then space and text
  • Comments are limited to 300 characters like posts
  • Comments have infinite scroll

Responsive Layout for Tablet

  • First designs for tablet (e.g. iPad) for 1024px

Dislike Removing

  • Done

Pagination for Posts

  • Infinite scroll built out, a’la Twitter

Tags (in posts)

  • Done

Repost Functionality

SEO Optimization (Finalizing)

  • See previous sprint

Binance Investigation

Bug fixes

  • Slay them bugs, yo.
  • Too many to mention…

Sprint 5 (June 18 – 27, 2018)

Goals for Sprint 5 were as follows:

  • Add Likes
  • Post preview (in modal window, comments)
  • SEO accessibility of post pages + OpenGraph
  • Delete user’s post
  • Cache images in CDN
  • Prototype Binance integration
  • Permission management system
  • Bug fix: Buy / Sell posts and their replays are not displayed correctly
  • Bug fix: Image uploading is not working properly

Add Likes

  • Like / Dislike functionality for all posts
  • Add Like / Dislike counter

Post preview (in modal window, comments)

  • Click on post area / body, the current post should open in modal

SEO accessibility of post pages + OpenGraph

  • Done

Delete user’s post

  • Done

Cache images in CDN

  • Review CDN integrations (e.g. Cloudinary)

Prototype Binance integration

  • Test API calls and response(s), review workflow and prepare recommendations on how YEN can support Binance

Permission management system

  • Done

Bug Fixes

  • Buy / Sell posts and their replays are not displayed correctly
  • Image uploading is not working properly

Sprint 4 (May 29 – June 14, 2018)

Goals for Sprint 4 were as follows:

  • Profile of users (frontend)
  • Global feed (recent posts of all users)
  • Replay transaction
  • All type of my posts feeds (posts, images, video) via profile
  • Follow / following functionality

Profile for Users

  • User can go to profile of other users only through URL in format yen.io/username
  • Displaying of page: yen.io/username

Global Feed

  • The feed is the same as My Feed with the same filters, the difference is that Global Feed (2nd column) contains the recent posts of all users in the system.
  • Prioritization of posts – only by creation time
  • Add cacheing for posts with transactions (backend).
  • Indicate in transaction the difference between ‘buy’ and ‘sell’ transactions

Replay Transaction

  • Replay will repeat logic of Buy / Sell
  • Statistics in transaction
  • Transaction speed / rate
  • Add API for Buy / Sell for account

All Type of My Posts Feeds

  • Following: Should be displayed on profile block
  • Following management on User profile
  • Display status of other user (follow is true or false) when current user goes to another user’s profile
  • API actions for follow / unfollow
  • List follows / following of current user in profile

Follow / Following Functionality

  • User profile should display 2nd colum with only current users posts
  • Filter of posts via profile
  • Posts: Only text posts
  • Reposts: The reposted posts (all types) and transactions
  • Media: The posts with URL preview, images, video, livestreaming
  • Transactions and Replays: Show the parent transactions and replayed transactions

Sprint 3 (May 10 – 23, 2018)

Goals for Sprint 3 were as follows:

  • Currencies in exchange rates (refactoring)
  • Add basic auth for alpha
  • Coinbase webhook notifications (for buy/sell transactions)
  • Messaging (+invest) – realtime post refresh after creation – for current user
  • Vuex
  • Add posts manually, images
  • Buy/sell via Coinbase from Yen
  • Profile for other users (API, layout on frontend)

Currencies in Exchange Rates (refactoring)

  • Should look like this.
  • Supported currencies for now: USD, EUR, GBP, CAD, CNY

Add Basic Auth for Alpha

Coinbase Notifications

  • As an authorized user via Coinbase, my transaction will be visible to others and they can receive notifications about user’s activity.
  • As an authorized user via Coinbase, data of my transactions will be save in YEN DB.
  • As a logged-in user, I can filter transactions by type: Buy / Sell
  • As a logged in user, I can see transactions of the authorized users via Coinbase in the 2nd column of the feed.
  • As abn authorized user, I can buy / sell via Coinbase from YEN.

Messaging

  • Continue prototyping

Vuex

  • Add Vuex library to front-end, allowing better cross-dependent utility.

Add Posts

  • Displaying of images in 2nd column.
  • Image (full size) should be opened after user clicks on its preview.
  • Image uploader from folder: Add custom files features with only-image extensions.
  • Backend will send list of images with 2 sizes: Original and preview.
  • Sizes of previews will be always same.
  • On frontend the images (1-4) will be displayed.
  • Published posts cannot be edited.

Buy / Sell via Coinbase

  • Completed. :unicorn:

Profile for Other Users

  • User can go to profile of other user only through URL in format yen.io/username
  • Displaying of page: yen.io/username

Sprint 2 (April 26 – May 8, 2018)

Goals of Sprint 2 were as follows:

  • Creation / Displaying of video posts (static video file and streaming)
  • User Profile
  • Coinbase Webhook Notifications
  • Exchange Rates Widget
  • Messaging Prototype

Create / Display Video Posts

  • User should be able to create a post with a URL to a video site (YouTube, Vimeo) for both on-demand and livestream (YouTube-only).
  • Post should be displayed in the 2nd dynamic column on the feed.
  • To embed videoPost should be displayed in the 2nd dynamic column on feed.

User Profile

Profile basic screen contains the following fields:

  • Update photo (optional)
  • Name (mandatory)
  • Last name (mandatory)
  • Full description (optional)
  • Website (optional)

Validation for fields:

  • Photo: size limit: UYp to 5.0MB
  • Name and Last Name fields: Minimum of at least 1 symbol or character
  • Full description: Up to 100 characters
  • Website: Should contain http:or https:, text / dot / text
  • Should be implemented with a loader for images (file extensions are jpeg, gif, png, tiff, and bmp)

Coinbase Webhook Notifications

  • Authorized user via Coinbase oAuth
  • YEN should receive notifications about user’s activity
  • Display transaction in second dynamic column
  • Save all transaction data in DB with ability to filter / sort (buy / sell)
  • Enable Buy / Sell actions via Coinbase from YEN

Exchange Rates Widget

  • Design a widget that shows current pricing of coins / tokens

Messaging Prototype

  • Complete a concept / prototype for internal messaging using off-the-shelf APIs (e.g. PubNub)

Sprint 1 (April 11 – 25, 2018)

The goal of this first (!!!) sprint was to identify our core architecture and establish baseline goals for MVP, including:

  • Core Architecture
  • Authorization + Registration
  • Create and Display Text (with or without URL post)
  • Design a 3-column feed where the middle (2nd) column is dynamic (updating) with text and/or URL post
  • Coinbase oAuth Test

Initial Concepts

Authorization & Registration

Authorization/registration screen should look like this:

For MVP: Registration only via email (in the future we may have google, fb, twitter, bitcoin pub accounts)

Create and Display Text

  • Only text posts and posts with URL will be accepted.
  • User can add new post (screenshot)
  • Upload up to 4 images (via drag-drog or upload)

3-Column Design

  • 3 colums where the 2nd column is dynamic with posts. All other columns will be empty.
  • LoFi concept.

Coinbase oAuth Test

  • US-Only: User needs to be able to connect to Coinbase via oAuth (YEN makes backend call to Coinbase API on behalf of user).I
  • Success!

<3