Close

Serving up some code!

A project log for MyComm

A portable, solar powered, handheld device that provides truly global messaging when you have no alternative.

john-grantJohn Grant 09/16/2016 at 15:220 Comments

I’ve now got the prototype server running in a way I’m pretty happy with so thought this would be a good time to share some info about how it’s set-up, where you can find the code and what it’s doing.

The application itself is built using Django - "a high-level Python Web framework that encourages rapid development and clean, pragmatic design.” I chose it because I wanted to use Python - it’s popular, robust, flexible and also easy to use and learn - I like using it. Also I find Django pretty intuitive, it has good documentation and seems very well supported on things like stackoverflow.com. Overall I’m happy with the choices.

All the code is stored in a GitHub repository: https://github.com/johngrantuk/myCommServer it’s (fairly well?) commented and should be relatively self-explanatory. Anyone should be able to just download the code from there if they wanted to set-up their own server.

Our prototype app is currently hosted by Heroku which is a cloud application platform that handles hosting, deployment, etc. The app is currently running on one of the free dynos, which is basically a Linux container. And yeah that’s free as in free! One reason I like Heroku is because of how easy they make it to deploy an app. I connected the dyno to my GitHub repository then whenever I want to deploy updated code I just hit the Deploy Branch button, it’s very cool.

The app itself has three main tasks:

  1. Display a page showing messages sent between the server and our MyComm prototype.
  2. Handle API requests to/from the Iridium service - for sending and receiving messages over satellite.
  3. Allow users to register and login to send a message to our MyComm prototype - we thought this could be fun for people to try as well as helping us to test the functionality

You should be able to see how these tasks are handled by looking at the functions in the views.py file. Hopefully this code makes sense to anyone trying to set-up their own version but if there are questions just post in the comments.

So that should give everyone an overview of how things are set-up. Now with some trepidation we invite you to visit the site at: https://mycommserver.herokuapp.com/ and feel free to register and send us some test messages!

JG

Discussions