Releases: dcsil/Konsensus
MVP Software
Overview of This Release
Progress
We have successfully completed our MVP. Using our project, a user can register or login. Once they are logged in, they can upload files, view files and star them from the All Files page. A writeup and video demoing the features of our MVP can be found here: https://github.com/dcsil/Konsensus/blob/master/demo.md
Video
Here is a direct link to the video: https://www.youtube.com/watch?v=GnV0Zo0L9X8
Code Climate
Backend
https://codeclimate.com/repos/620dd83dd65d9636d4007b9a
Frontend
https://codeclimate.com/repos/620c963e9dc87771fa008576
Issue Summary
The majority of our functionality was built during this release.
This includes creating the backend API, building the frontend components, and connecting to the Blockchain.
All issues and pull requests can be found in the following repositories:
https://github.com/dcsil/konsensus-app-backend, https://github.com/dcsil/konsensus-app-frontend.
Below we've noted down some major changes:
Authorization
We've added login and registration for new users:
dcsil/konsensus-app-frontend/pull/43
dcsil/konsensus-app-backend/pull/52
dcsil/konsensus-app-frontend/issues/28
dcsil/konsensus-app-frontend/issues/29
dcsil/konsensus-app-backend/issues/7
dcsil/konsensus-app-frontend/issues/52
Uploading
Users can now upload files using an upload modal:
PR: dcsil/konsensus-app-backend/pull/31 Issue: dcsil/konsensus-app-backend#29
PR: dcsil/konsensus-app-backend/pull/40 Issues: dcsil/konsensus-app-backend/issues/25, dcsil/konsensus-app-backend/issues/34, dcsil/konsensus-app-backend/issues/35
PR: dcsil/konsensus-app-frontend/pull/41 Issue: dcsil/konsensus-app-frontend/issues/30
Code Climate
We integrated code climate on both the frontend and backend:
PR: dcsil/konsensus-app-frontend/pull/45 Issue: dcsil/konsensus-app-frontend/issues/35
PR: dcsil/konsensus-app-backend/pull/32 Issue: dcsil/konsensus-app-backend/issues/30
We improved our UI by having different views that consist of different components including a Recents page, Starred page, and All Files page. We added features to star files, to view file sizes, and to have a dropdown menu on each file to do actions.
Starring
PR dcsil/konsensus-app-frontend/pull/61 Issue
PR dcsil/konsensus-app-frontend/pull/82 Issue dcsil/konsensus-app-frontend/issues/78
File Rows
We dynamically added rows of files to each page:
PR dcsil/konsensus-app-frontend/pull/56 and Issue dcsil/konsensus-app-frontend/issues/31
File Row Information
PR: dcsil/konsensus-app-backend/pull/50 Issue: dcsil/konsensus-app-backend/issues/51
PR: konsensus-app-backend/pull/45 Issue: dcsil/konsensus-app-backend/issues/36
PR: dcsil/konsensus-app-backend/pull/42
PR: dcsil/konsensus-app-backend/pull/41
PR: dcsil/konsensus-app-frontend/pull/62
PR: dcsil/konsensus-app-frontend/pull/69 Issue: dcsil/konsensus-app-frontend/issues/38
File Actions
PR: dcsil/konsensus-app-frontend/issues/64 Issue: dcsil/konsensus-app-frontend/pull/65
Add Collaborators
PR: dcsil/konsensus-app-frontend/pull/70 Issue: dcsil/konsensus-app-frontend/issues/66
Profile Pictures
Users can now have profile pictures:
PR: dcsil/konsensus-app-backend/pull/46 Issue: dcsil/konsensus-app-backend/issues/44
Smart Contracts
We also implemented smart contracts to incorporate Blockchain technology.
PR: dcsil/konsensus-app-frontend/pull/83
Roadmap Changes
We have completed all of our MVP use cases. Since the last release, we did not make any changes to our architecture. Although we were able to complete the core use cases, there are still many points for improvement.
To start, we would add more tests for the frontend. We also need to find a different library that can display file previews of multiple file types rather than only displaying previews for images. We also would want to implement link sharing through emailing in the future so that new users do not need to register to receive files. It would also be beneficial to explore other blockchain solutions, as it is not ideal that every user would need to set up Metamask to use our service.
We would ideally like to spend another month polishing the MVP, especially on the points stated above. In the future, we would like to bring on a blockchain engineer who has more field expertise than we do.
Dashboards
Heroku
Frontend
Backend
CircleCI
Frontend
Backend
Sentry
Frontend
Backend
Live Deployment
Frontend
Backend
Dev Env, Test Infrastructure, & Production Setup
Overview of This Release
Backend
We have setup a test infrastructure and CI system, and we prepared and presented a demo of it, which is referenced in the following issues:
dcsil/konsensus-app-backend#2
dcsil/konsensus-app-backend#3
The issues were solved in this pull request : dcsil/konsensus-app-backend/pull/13
We setup a developer environment dcsil/konsensus-app-backend#4
And we created a bootstrap script dcsil/konsensus-app-backend#14
Boostrap script: dcsil/konsensus-app-backend/pull/15
We also deployed our app to production dcsil/konsensus-app-backend#5
Heroku Deployment: dcsil/konsensus-app-backend/pull/17
We set up Sentry explained in this issue: dcsil/konsensus-app-backend#6
Sentry Exception Tracking: dcsil/konsensus-app-backend/pull/20
Service.Yml: dcsil/konsensus-app-backend/pull/12
CircleCI Setup: dcsil/konsensus-app-backend/pull/21
Docker obstacles: dcsil/konsensus-app-backend/pull/26 & dcsil/konsensus-app-backend/pull/28
Dependencies: dcsil/konsensus-app-backend/pull/8 & dcsil/konsensus-app-backend/pull/9 & dcsil/konsensus-app-backend/pull/10 & dcsil/konsensus-app-backend/pull/11 & dcsil/konsensus-app-backend/pull/27
Frontend
We created a side panel for our web app and created a header component as described here: dcsil/konsensus-app-frontend#10 & dcsil/konsensus-app-frontend#11
The changes are shown in this PR: dcsil/konsensus-app-frontend/pull/16
We also merged the following pull requests:
App setup: dcsil/konsensus-app-frontend/pull/1
Timeout to workflow: dcsil/konsensus-app-frontend/pull/3
Smart contracts: dcsil/konsensus-app-frontend/pull/4
Dependencies: dcsil/konsensus-app-frontend/pull/5 & dcsil/konsensus-app-frontend/pull/6
Authorization page: dcsil/konsensus-app-frontend/pull/14
Favicon: dcsil/konsensus-app-frontend/pull/15
Main page layout: dcsil/konsensus-app-frontend/pull/18
Bootstrap script: dcsil/konsensus-app-frontend/pull/19
Yaml: dcsil/konsensus-app-frontend/pull/20d & dcsil/konsensus-app-frontend/pull/22
Sentry setup and test button: dcsil/konsensus-app-frontend/pull/24
CircleCI project setup: dcsil/konsensus-app-frontend/pull/25
Test suite: dcsil/konsensus-app-frontend/pull/29
Roadmap Changes
Our initial roadmap can be found here.
We created updates to our tech stack which do not affect our progress in the roadmap. In terms of our first quarter, we have completed #51 #52 for our Customer Value Proposition. We have built an initial prototype using Figma #47 which can be found here. We used this prototype to conduct user research studies #50. We have also setup the developer environment dcsil/konsensus-app-backend#4 and we have set up our CI system dcsil/konsensus-app-backend#2, dcsil/konsensus-app-backend#3.
Upon researching for #53, we discovered that Ethereum had relatively high gas fees in comparison to another Blockchain network called GoChain. Lower gas fees greatly improves our cost-revenue model for #53. After our first demo, our team received feedback that AWS is a headache for developers to maintain and that other platforms such as Heroku are less troubling. For this reason we decided to switch to Heroku which has add-ons including SumoLogic. Using Heroku and SumoLogic means that we no longer need to use AWS BeanStalk nor AWS CloudWatch. In setting up our CI system, we discovered that we needed to modify our tech stack due to issues with Docker in the backend CI. For this reason we switched from Github Actions to CircleCI so that we can use mySQL without running into Docker obstacles. Ultimately, yes we are on schedule.
Updated Architecture Diagram
Below is a modified architecture diagram that reflects the changes in our tech stack.
Dashboards
Heroku Dashboards
Frontend
Backend
Sentry Integrations
Frontend
Backend
CircleCI Dashboards
Frontend
Backend
Live Deployment
Frontend
https://konsensus-client.herokuapp.com/
Backend
https://konsensus-backend.herokuapp.com/
Issue Summary
We currently have overcome all of the obstacles we've faced so far. In the coming weeks, we'll work on: #53 for our Financials Modeling and Projections, as well as continue to develop the frontend and backend of our web app.
In terms of our backend, we will work on further setup including:
dcsil/konsensus-app-backend#7
dcsil/konsensus-app-backend#22
dcsil/konsensus-app-backend#24
dcsil/konsensus-app-backend#25
For our frontend, we will work on implementing views from Figma using React, which is highlighted below:
dcsil/konsensus-app-frontend#9
dcsil/konsensus-app-frontend#12
dcsil/konsensus-app-frontend#13
dcsil/konsensus-app-frontend#27
dcsil/konsensus-app-frontend#28
dcsil/konsensus-app-frontend#29
dcsil/konsensus-app-frontend#30
dcsil/konsensus-app-frontend#31
UX Research w/Prototype, Roadmap Updates
High Fidelity Prototype
A viewing link to our figma prototype can be found here:
https://www.figma.com/file/6B3vmcOL4AZuZSkNPcb0KV/prototype?node-id=15%3A4
Evaluation Protocol
To evaluate our prototype, we followed up with two interviewees from our user persona research in CSC454 A3. The first interviewee was Lucas Schuermann, who is the VP of Engineering at a Fintech company with fewer than 10 employees. Our second interviewee was Olivia Li, a tech lead at a San Francisco startup with around 70 employees. We also interviewed our instructor Julian Nadeau.
We plan to continue conducting UX research in the future and hope to find additional users to give feedback on our prototype and MVP. In particular, we want to interview:
- Tech employees of various levels. Differing levels of authority within an organization translate to different focuses on our product. We expect those in a position of leadership (like Lucas) would emphasize our security features more, while those in more collaborative roles (like Olivia) would emphasize usability.
- Employees in a variety of roles. All of our current interviewees come from a background of software engineering, so we have very one-sided perspectives so far. Supplementary feedback from those who work in product or research would offer fresh viewpoints on our product.
- One time users, meaning people who might be shared a file through our service but not use it as a part of their work. This is relevant for any use case that involves viewing a specific file.
During each interview, we asked the same set of jobs for them to complete sequentially:
- Upload a file.
- Let Windsor view the file you just uploaded.
- View the file you just uploaded.
- View the history of the file to see if Windsor has seen it.
- View a file you received from someone else.
- View who is in your organization and invite someone.
We took notes, asked participants for feedback while they completed each job, and did our best not to bias them with any leading questions.
Results
We consolidated our feedback from the interviews into three categories–strong points, pain points, and nice-to-haves. We were very pleased to find that overall, all our participants were able to smoothly go through each job without any issue. The only mistake participants made were figuring out how to add new users to their organizations. All participants enjoyed the consistent color schemes and digestible layouts that were consistent with commonly used file managers. The issues brought up were largely user dependent, for instance, Julian brought up that he would enjoy having file size also be shown on tables detailing several files. All three participants, however, did mention that they would like the security features - file history button, activity table etc. - to be more obvious, as it is one of the main features of our service. Moving forward, we will definitely need to find ways to incorporate this feedback into our current designs meaningfully. Additional feedback can be found below and raw notes for the interviews can be found in the appendix.
Strong points
- Design is consistent with itself and similar services (ie. Dropbox)
- Clear color scheme
- Straightforward tasks, does not feel cumbersome or slow to use
Pain points
- ‘Check history’ button should be more obvious since security is a main feature of our product
- The log could be a separate tab, with the file itself being the primary tab
- Again, since security and the ability to track file accesses is a primary selling point, we may consider adding more details to each log
- The responsibilities and differences between the different roles are not very apparent. It is quite necessary that the information popup clearly explains the differences.
- Organization membership should be sync automatically with LDAP
- We’ll omit this for the MVP, but are aware that this is an important feature for production.
Nice-to-haves
- File rows could be more informative (include creation time, file size, etc.)
- The horizontal margins on the right section of the page are inconsistent.
- Sometimes it is unclear what elements are clickable, especially if they are just black text.
- The link in the email looks like a footer instead of a button.
- Dark mode would help differentiate us between existing file storage systems and may increase our brand appeal.
Roadmap
The only change seen to our roadmap were short term development changes. We discovered that due to Ethereum’s high gas prices and slower transaction times, it would not be wise to use it as a means to deploy smart contracts. Instead, we opted for Binance, which has drastically lower gas prices and faster transaction times. (Binance, 2022) We also found that many of our tech stack decisions centered around Amazon services would be too time consuming to develop when compared to easier platforms which our team is more familiar with. We will be making updates to our tech stack and documenting any key changes on LearnSoftware in the coming days. Outside of this, all early logistics and UI/UX related tasks have been largely completed and our team is making strong headway into development as planned.
References
Gas (GAS) Coin Price, Chart & News. (n.d.). Binance. Retrieved February 28, 2022, from https://www.binance.com/en/price/antcoin
Appendix
Appendix A: Lucas Interview Notes
General
- Likes the color scheme
- Very consistent
- Straightforward and clear
Upload a file [no mistakes]
- Very clear
- Maybe have the add file thing beside
Let Windsor view the file [no mistakes]
- Very obvious
- Maybe have a quicker way to access
View the file [no mistakes]
- Straightforward
- More details for how external people view the file
See the history of the file [no mistakes]
- Add more details
- Make the check history button more obvious
- Maybe for updates, see what they updated
- For views, see what they viewed specifically
View a file you received from someone else [no mistakes]
- Again, more details
View who is in your organization and invite someone
- Add user profile pic
- A more clear ‘admin’ role
Appendix B: Julian Interview Notes
General
- Not aligned on right side with “Create +” on left
- Sidebar
- Recent should go to recent section rather than having a section on the page
- Reformat the listing on the sidebar
- Can’t tell the role the current user is
- UI/UX interview takeaways- Ask permission to record
- Lead with questions
- Too leading aka don’t bias the interviewee
- Instead, if the user does something that isn’t what you expected, ask them “what made you lead to that”
- Don’t give answers
- Be mindful of delivery (customer service voice)
- We want raw feedback
Upload a file [no mistakes]
- Suggestion: make it auto upload rather than clicking “Upload”
- Suggestion: change the table alignment for less negative space between the last two columns
- Suggestion: use the metadata for file created timestamp
- No file size column
Let Windsor view the file [no mistakes]
- Suggestion: hover over the collaborators section for more info
- Need it to be more accessible for blind people
- Rather than just icons, hover over the icons for names of people
- Pretty straightforward
View the file [no mistakes]
- Very easy
- Noticed that the file is uploaded to root directory and not to folders
- Suggestion: use a home page or dashboard rather than quick access
See the history of the file [no mistakes]
- Make the check history button more obvious so it’s clear it’s a link
- Make it a tab page
- So one page for file
- One page for access history
- Suggestion: admins care about history but a user may not, so separate this view
View a file you received from someone else [no mistakes]
- Suggestion: Look into sharepoint link to share protected files and messages
- Looks too much like a footer and less like a button
View who is in your organization and invite someone [mistakes were made]
- LDAP should sync login
- Clicked the settings button instead - Should make the top right buttons more obvious
- The people button looks like the google drive share button
- Suggestion: add a ‘+’ on the icon to make it clear it’s for sharing
- The people button looks like the google drive share button
Appendix C: Olivia Interview Notes
Upload a file [no mistakes]
- Unsure of how ‘standard’ the current file upload flow is
- Perhaps there should be a preview of the file you chose to make sure you uploaded the right one
Let Windsor view the file
- Initially tried to click the file row (specifically, under the collaborators column) instead of the vertical dots menu
- We may want to allow more functionality from the file’s page itself, instead of just from the list
- Unclear about what other roles may be available
View the file [no mistakes]
- Maybe allow the file to take up more space, or have a fullscreen mode. It may be hard to see details on a crowded file since the file itself only takes up a fraction of the page.
See the history of the file [no mistakes]
- The table is kind of ugly and uninformative. Maybe each row should be interactive and clicking on one reveals more functionality/details?
- The ‘check history’ and ‘export buttons are not clearly interactive
- Timestamp is not human-readable
View a file you received from someone else [no mistakes]
- The email should be slightly more informative
- Questions about how the ‘Shared with me’ section should be organized
View who is in your organization and invite someone [no mistakes]
- Again, unsure what each role means
- Again, table is ugly and can likely be more informative and interactive
Tech Choices, Architecture Diagram, Roadmap
Overview of this release
Use Cases
- Added use cases to LearnSoftware and created rough sketches for each use case:
Product Requirements, Tech stack and Architecture
Roadmap
Progress Since Last Release
In the past week, we've made a lot of progress refining our solution and getting user validation. Through our user research, we were able to obtain a lot of quantifiable metrics about what IP related problems were most rampant and what solutions were most desired in smaller tech companies. From this, we began ironing out use cases and creating mockups, information which can be found in this release. After defining our roadmap, we have a much stronger idea of how to approach development and what business steps to take next.
Summary of Issues
We created and closed issues relating to Assignment 3 for CSC491, including different steps of the process like use cases, tech stack, roadmap, and architecture. These issues were used to track discussion and organize feedback for topics that required collaboration such as mockups, and what stack to use.
We also created a new repo for our codebase: https://github.com/dcsil/konsensus-app
We created milestones and issues in this codebase for the upcoming few weeks regarding environment setup and initial functionality.
Changes to Roadmap, Architecture, or Use Cases
We created our initial roadmap, architecture, and defined 4 use cases to implement in the MVP.
All of these are linked above.
Team Exploration - Diversity and Inclusion
Overview of this release
📝 Added diversity and inclusion discussion.
Progress Since Last Release
In the past week, our team collaborated to do broad research and then narrow down on a single idea to focus on for the rest of the semester. In the process, we learned a lot more about what blockchain technology can be used to accomplish and explored several creative ideas that our members came up with. We also learned more about our strengths and weaknesses as team members and collaborated to fill in any gaps. The majority of our time last week was spent on Assignment 2 for CSC454.
In addition, we made time to have team discussions on Zoom to talk to each other. We used the provided prompts from Part 3 of CSC454 Assignment 2a (Startup Team) and this Diversity and Inclusion assignment. Afterwards, the students in CSC491 (Stella, Safa, and Windsor) worked together to draft the actual writeup for the Diversity and Inclusion assignment based on the information we consolidated.
Summary of Issues
We created and closed issues relating to Assignment 2 for CSC454, including different steps of the process like ideation, research, writing, and creating pitch decks. We also created issues to coordinate the writing and release of Assignment 2 for CSC491.
Changes to Roadmap, Architecture, or Use Cases
N/A
Team Introduction, Team Setup
Overview of this release
📝 Added team principles and profiles for each member of our team.
- Team Principles
- Stella's profile
- Safa's profile
- Windsor's profile
- Shang's profile
- Qi's profile
- Kevin's profile
🎨 Created company name and logo.
Leader Election
The team has elected Stella (Sijia) to be the leader of Konsensus. Since she is only taking CSC454 and CSC491 this semester, her lighter course load will allow her to focus her attention on keeping the team on track for success. Stella also has expertise in product design, engineering, and technical writing. In CSC318, she led her team through the research, ideation, and UX design process to create a mobile application in the finance industry. In addition, Stella’s several software engineering internships give her the experience necessary to define best practices in a fast-paced environment.For the reasons above, Stella is the best candidate to lead us through this venture.
Progress Since Last Release
So far, we have taken steps in bonding as a team, learning about each others’ interests, strengths and weaknesses, and defining our core work processes. Through this, we established a concrete strategy on how we plan to approach and execute on upcoming tasks. We have settled on our communication and collaboration channels and utilize Slack, Notion, and Github Projects to facilitate our teamwork. We have also taken the initiative to brainstorm and research a few topics as a group and are in the early stages of ironing out our problem statement. We have also scheduled regular meeting times throughout the week. Altogether, we are making excellent progress as a team.
Summary of Issues
We have created and closed issues related to drafting and proofreading the team principles, filling out each member's profile, and illustrating a relevant logo. We have also created issues related to writing the 'Business Opportunity, Market Analysis and Startup Team' (A2a) report and will continue to make progress on it the upcoming week.
Changes to Roadmap, Architecture, or Use Cases
N/A