opensauceryafrica/bifrost

Update product description, problem statement, installation and usage instructions, and add a table of contents in README.md

Closed this issue · 3 comments

Issue Descriptions

  1. Product description: The current description of the project is insufficient and needs improvement to better convey its purpose and features to potential users and contributors.
  2. Problem statement: The problem statement is clear and concise; however, the description could benefit from additional information to provide a better understanding of the project's goals and objectives.
  3. Installation guide: The installation guide is lacking a clear prompt that explains what the code would do if the user follows the instructions, leaving the user uncertain about the outcome of their actions.
  4. Usage Instructions: The current README file includes usage instructions for three different cloud providers which can be overwhelming for users and contributors, which might not provide a clear understanding of how to use the code. Additionally, there is no explanation of the code that was put there, which could lead to confusion or errors when trying to use the code.
  5. Table of Contents: I would like to suggest adding a table of contents to the README for better readability and easier navigation for users. This will help users quickly find the information they need and navigate to the relevant sections without having to read through the entire document.

Proposed Solution

  1. Product description: Rewrite the description to include a clear and concise overview of the project's purpose, features, and benefits.
  2. Problem statement: Expand the problem statement section to provide more information on the project's objectives, including the specific challenges it aims to address.
  3. Installation guide: Add a clear prompt at the beginning of the installation guide that explains what the code will do if the user follows the instructions.
  4. Usage Instructions: To make it easier for users and contributors to understand how to use the product, it would be helpful to reduce the usage examples to one cloud provider and provide detailed explanations of how to use the product before including the code. This will allow users to have a clear understanding of what they are doing and help to prevent errors or confusion.
  5. Table of Contents: Create a table of contents at the beginning of the README, with clickable links to each section of the document. This will make it easier for users to navigate the document and find the information they need quickly.

Additional Information

  • This change does not affect any existing functionality or code; it only updates the README file.
  • The CONTRIBUTING.md file would also reflect these changes.

Hey, @Marzz29 glad to have you contributing to this.

Just a few comments and questions, I guess.

  1. That one-liner description above the image of a Bifrost is actually in reference to the fact that Bifrost aims to provide simplicity and so does the description.

  2. However, we can use the Problem Statement section to add more information as needed for anyone to get more clarity on what Bifrost solves. A suggestion I think will be good for the problem statement is to provide two separate code samples for GCS and Pinata on how to upload a file to their storage in Golang using conventional means and they another code sample to show how Bifrost eases the steps.

  3. There's really no prompt when you do a go get. Except if we're showing logs in the readme which isn't a necessity.

  4. The usage instructions can be better, I agree. But the part of 3 cloud providers is actually going to remain 3 because we are trying to provide documentation for all providers and all methods of each provider since they might vary in a way. But I don't think we should put all the docs inside the readme. Instead, we can have the readme just contain documentation of how to mount a Bifrost bridge to GCS and how to use it to ship a file and then another guide on how to mount a Bifrost bridge to Pinata then we can have links to documentation for each provider. This means inside the package folder of each provider, we can have a file called doc.md which is a growing guide on how to mount a bridge for the provider and how to use each method available for such provider. All the methods actually...(UploadFile, UploadMultiFile, Disconnect, Config, IsConnected, etc...)

  5. Yes, a table of content will do good as well. But this TOC should appear after the Problem Statement section.

I do help every of these make sense and provide more light to help us drive the project forward.

Hey @opensaucerer I'm honored to be contributing.

Thank you for clarifying the purpose of the description and for your input on the Problem Statement section. I will include separate code samples for GCS and Pinata in the README, as well as a code sample for how Bifrost simplifies the process.

I understand your point about including links to packages documentation and agree that it would be better to have a separate doc file for each provider in the package folder.

I would like to point out that I am not proficient in coding in Golang, I do not have the expertise to write code for uploading files to GCS and Pinata storage using conventional means. Therefore, I'm asking if I can use ChatGPT to provide the code samples.

@Marzz29 Of course, you can use ChatGPT for that and when you do open a PR, we can review it to ensure it's the right one and I can also provide code references as well.
Here's a Pinata guide

And here's a GCS guide