DriveSoftwarePublisher | Software Publisher using Google Drive | Developement update #3

Repository:

https://github.com/adsau59/DriveSoftwarePublisher
Commit1
Commit2
Commit3
Commit4
Commit5

What is DriveSoftwarePublisher?

DriveSoftwarePublisher (DriveSP) is a software publishing software that uses Google Drive.

Ever wanted to send your software your client but you can't afford a to hire a server? with DriveSP you can use google drive to version your software.

Objectives

  • Help programmers and software developers who have very low budget publish their software easily.
  • Help open source developers to publish their software without any investment at all.
  • Quick way to publish software.

Demo video

Release

You can download an alpha release from here, put the SP.exe inside environment variables file path for ease of use.

Installation Instruction

Windows:

  • Extract
  • Add the extracted binaries into environment path

Linux:

  • Extract
  • run, gedit ~/.profile
  • add this in the end of the file
    export PATH=$PATH:<path_to_publisher>
  • save and reboot

Technology Stack

DriveSP is made using

  • C#, .NET Core
  • Drive REST API
  • Docopt (Command Line API)
  • Newtonsoft Json (JSON framework for .NET)

New Features

Upgraded dotnet version to 2.1.5 (thread)

Why?

  • Using dotnet v2.0 the program was not working properly in linux os, so the dotnet version was upgraded

How?

  • Changed dotnet core version from 2.0 to 2.1 in all the .csproject files

Added os option in getupdater command

Why?

  • As DriveSP now supports linux, a way to get updater link for different operating system was needed, so even if you are using DriveSP in windows you can actually get the link for the updater for linux

How?

  • Added (--win|--linux) option in getupdater command in Publisher.
  • The option is passed into Publisher.GetUpdate method as a parameter which uses it to select the correct folder to copy the files from.

Added file name parsing using regex

Why?

  • After adding support for multiple os, updater zip file had to be named differently.
  • matching the updater file with simple == wasnt enough now as the strings got more complicated hence now regex is used instead.

How?

  • In DriveUtils.GetVersions, now it uses regex instead of equating strings

Added support for large files

Why?

  • when uploading large files, the program used to get crashed as it didn't support it.
  • By adding multipart upload now large files can be uploaded.

How?

  • Changed the DriveUtils.UploadFileToCloud method, to use multipart upload instead of simple upload.
  • Changed the DriveUtils.DownloadFIle method to use multipart download instead of simple download.

Added progression bar for feedback (thanks to DanielSWolf's ProgressionBar)
Screenshot (4).png

Why?

  • Uploading and Downloading large files can take alot of time to complete.
  • Which makes the program look unresponsive.
  • Hence to fix it, an ascii progression bar was added during file upload and download.

How?

  • Added ProgressionBar Script which takes in double and displays a progression bar
  • During download and upload, an event is created which is called which updates the progression bar

Added feedback for Publisher getupdater and Updater install

Why?

  • Lack of feedback messages made the command feel unresponsive.

How?

  • Wrote appropriate messages in console using Console.WriteLine

Roadmap

Development plans of DriveSP can be viewed on the Trello Board.

Phase 1: (COMPLETED)

  • Create DriveSP Prototype with basic Publisher and Updater commands

Phase 2: (COMPLETED)

  • Port to .NET Core
  • Add Features:
    • pushnow commnd in Publisher, increase version and push with one command
    • drop command in Publisher, delete a version from the drive
    • showversions command, show versions on the drive
    • target install version with either version code or version name
    • checkupdate command, check if new version is available

Phase 3: (COMPLETED)

  • Add Features:
    • Multi OS Support (Linux and Windows)
    • Support for large files

Phase 4:

  • Error reporting system, report errors using google drive.
  • Add Feature:
    • Add ability for 3rd party application to check updated and perform update automatically.

How to contribute?

You can contribute this project by,

  • Using the the software and creating issue when any bug is encountered.
  • Helping me in the development by bug squashing or developing new features. (If you want to do this, contact me so that we can collaborate.)
  • Let me know if you have any good feature ideas.

Before creating issues for bugs, or suggesting new feature ideas, check out the Trello Board if it is already been found/suggested.

Contact

If you have any problems or you want to contact me for feature ideas or want to collaborate in development you can contact me on DefineX Community discord server

GitHub Account

https://github.com/adsau59

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
5 Comments