Michael Lorton's Team

CodeDay Labs 2023 ∙ 
Permalink
Unmute
This project is to allow users to sort files on the Firefiles system. Currently, all files are displayed at random. The system should support sorting over name, size and created date.
- Issue: https://github.com/faisalsayed10/firefiles/issues/29
- Pull Request: https://github.com/faisalsayed10/firefiles/pull/50

Additionally, a second issue was addressed with the addition of features related to access control and invites on Firefiles.
- Issue: https://github.com/faisalsayed10/firefiles/issues/17
- Pull Request: https://github.com/faisalsayed10/firefiles/pull/70

What tools did you use to create your project?

  • javascript
  • react
  • typescript

How much experience does your group have? Does the project use anything (art, music, starter kits) you didn't create?

CodeDay Labs team in the advanced track.

Prior to beginning work on the project, the collective experience among our team varied between team members. While there was limited experience between us using both React and TypeScript, none of us had used cloud storage providers or their API tools.

All three of us being university students with limited professional work exposure, we had a lot to learn regarding both the technologies and how Firefiles leveraged those tools to create the experience we were to build upon.

What challenges did you encounter?

Both technical and system design obstacles arose during the planning and implementation of each issue our team took on this summer.

For our first issue, the addition of a file sorting feature, we ran into challenges in our testing process and in ensuring our solution as accurate and applicable we could provide. Following the initial pull request submitted for this feature, changes for our implementation were requested after it was collectively realized that our testing environment had not accounted for a wide enough variety of sorting inputs. After improving upon how we tested the sorting solution locally, it was apparent that our implementation for sorting by file name was not robust enough. To handle this, we utilized the JavaScript Internationalization (Intl) namespace and their Collator constructor and comparison tools to create a new solution that was more effective and provided compatibility for all languages.

Before implementing our second feature, the addition of user access control and invites, our team had to overcome a system design obstacle regarding how the project handled confidential drive information. Previous flows of control for a user interacting with a drive required the drive's secret keys and access credentials to be decrypted and passed from server to client allowing for fast and responsive interaction between the application frontend and the bucket provider APIs. In an environment with our feature, and the consequential sharing of these drives, this posed a significant security risk. By adding a new flow of control, one with server authentication and utilization of signed URLs, we were able to overcome this obstacle and implement the frontend and backend additions required to address our issue.
0
0
0
0
 
Participation Certificate

Members

Shengzhe Zhang