Contributing

Thank you for considering contributing to our open-source project! Your support helps make this cloud storage solution, powered by Telegram APIs, even better.

How to contribute
  1. Fork the repository
    Start by forking the project repository to your own GitHub account. This creates a copy where you can work freely
    Go to HorizonGram repository
  2. Clone your fork
    Clone the forked repository locally to begin working on your features or fixes
  3. Create a feature branch
    Create a new branch named feature/<BRANCH_NAME> for your changes
  4. Make your changes
    Implement your new features, bug fixes, or enhancements. Feel free to refer to the project's documentation and existing codebase for guidance
  5. Submit a Pull Request (PR)
    Once your changes are complete, push them to your fork and open a Pull Request (PR) to the main repository
  6. Review and discuss
    Your PR will be reviewed. We may suggest improvements or ask for further clarification. Once everything is clear, your PR will be merged into the project!
Customized HorizonGram Client

If you're interested in building a customized client for the cloud storage system, we'd love to hear from you! You can develop your own client in a separate repository.

When the client is done, open an issue on GitHub with the following tags: priority:low and type:enhancement.
Provide a brief description of your idea or customization, include screenshots that showcase the proposed UI and add a link to your repository.

Your issue will be reviewed and, in case it is accepted, your client will be integrated into the HorizonGram repository.

Reporting

Do you have any suggestions to make or bugs to report?
We really appreciate reports, so don't hesitate to open one!

You can open an issue on GitHub in the following way:

  1. Add an explanatory title
  2. Add a very detailed description. In case you are reporting a bug, clarify when it happens and what steps to follow to reproduce it
  3. Add two tags. One with priority label, one with type label:
    • priority:low
      Indicates that the issue does not affect user activity
    • priority:medium
      The issue impacts user activity, but user data remains intact
    • priority:low
      The issue impacts user activity and the integrity of user data is invalidated
    • type:bug
      Something isn't working
    • type:documentation
      Improvements or additions to documentation
    • type:enhancement
      New feature or request
    • type:question
      Further information is requested

Warning

In addition to the listed tags, there are others that indicate whether the report already exists and the status. Well, all tags not listed should not be used.

Note

In case of reports for doubts/suggestions, always set tag priority:low

APIs

The following is the documentation of the API exposed by the server at the latest updated version

Status

Folder

File

Chunks

Additional chunks documentation

As stated in the documentation, there are 3 endpoints under the Chunks route: checks, preparation, and upload.
These are three endpoints that must be invoked in order by the FE when uploading a file by splitting into chunks.

First invoked is checks, which takes care of checking whether the file can be uploaded to the cloud.
Now the client must proceed to divide the file to be uploaded into chunks. After that, preparation is invoked, which saves chunks number to the database.
For each chunk, then, upload service will be called.