Portfolio: Software Release/Updates Server

A modern solution for software release/updates

The Problem

A screenshot of our software release posts

This process is tedious and not efficient:

  • It’s really easy for customers to miss out.
  • It takes time for customers to get the new software: you’ll have to open the post, download the file and click to install.
  • And it takes time for us to write the forum post too.

I’m not happy about this process. I feel like there must be a better process. I’m wondering:

How can we notify the customers automatically? How can they get the software quickly?

The Solution

  • A central place to store the software release/updates information: release notes, installer files, etc
  • A tool that can automatically check for the above information and download the installer

Version 1: XML + FTP (2010–2013)

So I chose the stupid way:

  • Store the information in a XML file, uploaded to FTP
  • Use a tool to download the XML file from FTP and display the information.

Since it’s not easy to directly edit the XML file, and not to mention that we need some formatting in the description field, I’ve built an internal tool to help to download/upload/edit the XML file:

And if you’re curious, this is the XML file looks like:

Version 2: web server (2014)

A few points:

  • You’ll need to install the tool I wrote to publish an update. And this is where web shines, you can just use it without installing everything®.
  • You’ll need to remember those steps to carefully update everything. Why not just creating a script to update it automatically?
  • We’re using the XML and FTP to store the information. It’s like a plain database.

At that time I’m learning about web technologies. I was thinking:

Why not to make a web server to store the updates and streamline everything?

So I created a web site. It exposes an API for checking updates:

API

And it has a web interface to let you manage the software release/updates:

The software page shows relative versions and associated part numbers
Edit page featuring Medium style editor ;)

And here is the public download page:

Downloads page

Well, I also build a statistics page that shows the numbers of query and downloads. Hopefully it will give us some business insights:

Stats Page

Responsibilities

As you can see on my code commits heat map, most of the development happened in a month:

Code commits

Thoughts

I feel like life is like a RPG game, and unlocking new capabilities is fun!

One More Thing

This is a part of my portfolio showcase on medium. To see the overview of my portfolio, please click here.

Full stack problem solver with a passion for simplicity. Personal site: http://zurassic.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store