header image

I recently opened website HikinGrounds.com. The website is for people looking for various outdoor activities in multiple parts of the world. Currently, the website is in an early stage of its development cycle.

The website is powered by modern Java back-end technologies: Spring framework and Thymeleaf template engine.

First development phase of HikinGrounds.com took a month, and implements user sign up & access control and a SQL database with nearly 30 tables. Although I heavily focused on back-end development in the first phase, I also use some front-end technologies such as JQuery & Bootstrap to provide necessary UI functionality.

Table of Contents


Overview

As they say pictures tell more than thousand words, let the pictures speak up then. The web application is still quite barebones and rough mock-up as what comes to its front-end but as said, this is what it looks like after its first development cycle:

post image
Front page. HikinGrounds.com front page has currently a placeholder image rotation implemented. Informative and user-driven elements are planned.


post image
Routes page. In the early development, one of the main priorities was to provide a back-end ground work and necessary UI for stored route data and for basic data controls. Complete rework for this page is already planned.


post image
User sign-up page. As the site is planned to accept route data from registered users, sign up and sign in functionalities were implemented, although yet lacking some features.


post image
Route edit page. Basic route data can already be edited, added and deleted by admins and a user who originally added the route. Future releases will include more functions for route related operations.


post image
REST API help page. Accessible only for admin and helpdesk users. Shown here for demonstration purposes.

As I may say, this is good start, but for an effective & actually useful user service, a lot of more development effort is required - with additional front-end and back-end technologies involved. I already have extensive plans for that.

Motivation and website purpose

Personal motivation: I like hiking in exciting locations whenever possible. I have had and shared many great adventures in interesting places with various people. What I need is a platform where to find out information about these locations beforehand using a simple online platform, and to avoid making the trip planning process too tedious one.

post image
HikinGrounds.com targets various audiences and activities. As there are many outdoor activities and conditions in different countries, flexible support for various needs must exist from the start.

Because hiking is not only activity people tend to do, I feel it is important to include other activities as well: cycling, mountaineering, sight seeing and so on. Overall, the platform must be multi-oriented for various needs different people have for their outdoor activities. Obviously, location specific real-time insights are a big plus.

Deployment environment

The original project requirement was to use Heroku cloud service for hosting, but I went on with my self-hosted server environment instead. For this project, my own public server infrastructure could easily support web application project hosting. Cloud-based hosting could have been used but, for instance, a third party data storage should be carefully evaluated for data portability, security & legality before any cloud deployment process could take place.

When compared to large data-center driven cloud services (AWS, Azure, etc.), obvious downside of a self-hosted server solution is restricted scalability, reliability and providing fast response in very high load situations. However, for this project, I couldn't yet find significantly added value by using a cloud-based hosting solution or creating any possible cloud vendor lock-ins. As an additional note, Heroku, for instance, has a limited number of free application deployments.

Preceded project

HikinGrounds.com development phase started immediately after another Java web application project I developed as a practice. You can find it on the following public Git repository:

post image
HikinGrounds.com is preceded by my first ever Java web application java-bookstore which you can find on GitHub. Running demo is deployed here.

Conclusions

With proper technologies involved, it is possible to provide a powerful and interactive user-driven web service for large audiences. I believe there are more people like me who would like to use a single web platform for outdoor activity planning - globally.

It should be acknowledged that this project, in its first development phase, does not involve all modern technologies which should be used in large-scale web application projects in general. However, this is an acknowledged issue and targeted in future releases if the website development continues.

I also gratefully take any suggestions and ideas for HikinGrounds.com development. Leave a comment or directly contact me. You find my contact information in the footer below. Thank you.