Find campsites near you in New South Wales, Australia. It covers camping on public, common land such as National Parks, State Forests and Local Councils.
It is a client-side Javascript app written using Elm. If you haven't come across Elm before, it's a pure functional language that compiles to Javascript and is easy to learn and use and has been generally a pleasure to work with.
The app also uses PouchDB/CouchDB to work offline.
When a network is available any updates from the main database are automatically synched back to the local database and are reflected in the user interface in real time.
The next step is to add the ability for the user to edit and add new campsites! This will again even work when offline.
To run:
npm install
npm run dev
Point your web browser at http://localhost:3000
And for testing goodness:
elm-test --watch
There's currently a bug in elm-test that means that it doesn't watch all directories for changes. It's been fixed but not yet released. In the meantime just re-run the tests when you need to.
The site is served from a Node.js server running on Heroku. This allow us to do isomorphic rendering so that most of functionality of the site is still available if javascript is disabled (or not working) on the client side.
We're using Heroku's "Automated Certificate Management" to generate free Let's Encrypt SSL certificates. Heroku does require you to be on a paid plan for this to work.
To deploy a new version simple push code to the master branch on GitHub.
BrowserStack for supporting open-source projects, including That's Camping, with free access to their wonderful browser testing tools.
The "That's Camping!" icon design by Gabriel Clark.
Copyright Matthew Landauer. Licensed under the GPL v3. See LICENSE.md for more details.