# Updating the App

By now you're probably asking yourself, "How do I know if there's updates??" Well, that's a good question...

One of the features being worked on is a way (within the app) to check for updates, but since there's no central shSMS server to ping and check for updates it gets a little tricky. There is a manual solution for now though:

#### Frontend:

* Open a terminal and navigate to the shsms-frontend folder: `cd ~/shSMS/shsms-frontend`
* Make sure you're on the 'master' branch: `git checkout master`
* Pull the latest changes: `git pull`
* Rebuild the APK and put it on your device the same way you did previously

#### Backend (Heroku):

* Open a terminal and navigate to the shsms-backend folder: `cd ~/shSMS/shsms-backend`
* Make sure you're on the 'master' branch: `git checkout master`
* Pull the latest changes: `git pull`
* Push to Heroku: `git push heroku master`

#### Backend (Raspberry Pi):

* Close out of the pm2 monitor (if you have it open): `Ctrl + C`
* Make sure you're on the 'master' branch: `git checkout master`
* Pull the latest changes: `git pull`
* PM2 should automatically switch serve the latest changes, but I like to stop it and start it again for good measure: `pm2 stop 0` and then `pm2 start 0`
* You can check the commit message in the pm2 monitor to make sure it's the latest commit from the Github repo.

If you want to run the latest changes being worked on you can change the second line on both of the frontend/backend steps to `git checkout development` and then run/build from there. Doing this may cause some bugs in the app, but it's also the branch I run on my device every day so anything major should be fixed relatively fast. You can always check the repo to see what/when changes have been made. Or even better, follow the repo either on Github or an RSS feed thingy (I think that feature exists...) and you'll be updated when something gets added.
