We’ve recently been working on a new blogging service (MyHillBlog), that is developed with the Laravel framework, and is designed to let people blog their hill-walking / mountain climbing.
As an initial minimum viable product (MVP) we put together the core of the system, which included users, walks, hills, and hill collections. This required import of data into the system to store hill data, including co-ordinates of “peaks” and hill collections. This was all carried out with Laravel database seeders.
The second phase took the platform from MVP through to an initial alpha release. As well as basic user-content management, this release added a number of innovative features linked to the geo-based nature of the platform, and plans for social engagement. These included support for storing, and mapping route files from common services such as RunKeeper, Strava and Endomondo, support for geo-tagged photos with each image in user-galleries being geo-located and displayed on a map alongside the route.
As well as blog content, at this point user’s walks include photo-galleries, route maps, and a list of hills that they “bagged” on their walk. Hills can either be entered manually, or auto-detected from route files. Uploaded photos are processed in the background and automatically re-sized and offloaded to Amazon S3 for hosting.
The (closed) beta release added a number of other features, including gamification features where users can earn badges for their activity on the site. Badge processing happens via Laravel’s background queue processing, and users are provided with notifications when they earn new badges. This release also added social integration, allowing sign-on and registration with Twitter, as well as auto-posting of new walks, and badge achievements to Twitter. Additionally users can “like” other users content.
The site is launching to public beta in November, and we will be working on a number of other development phases of the project over the next few months.
The developments so far have included all of the following with Laravel:
- Unit testing framework
- Database migrations
- Database seeders
- Queues and background processing
- External filesystem integration with Amazon S3
- Rich templating, including JSON+LD and Twitter card markup for social sharing
- Twitter API integration
- Automated image processing
- Custom Google Analytics tracking and events