Bike Escape [mobile app]

The first serious project made for the purpose of learning programming. Written in about a year after hours. It was a difficult time, full of new things, but it made me understand and learn many aspects of programming. The project was almost finished, but in the end I’ve never release the app. Although the application was never published in GooglePlay or AppStore stores, it was well tested on both type devices and worked fine.

– The idea –

mobile application for city games

Several types of games from a classic city game to a time-based bike race with checkpoints or an interactive tour. The whole idea is to cycle around the city and follow the game scenario. It starts from a designated location on the map with a timer countdown. Discovering the next checkpoint is possible after solving the puzzle (answering the question or scanning the QR code from the picture). In case of being stuck, there is a hint system that directs you to answer.

That was on the user’s side. On the other side the administrator via the website can manage games, add new scenarios, checkpoints and create complex games along with the entire plot. It depends on the scenario whether it will be an ordinary city tour following a specific route or a story full of intrigues and plot twists.

About the code

All code is available on the public Github repository ➡️

As I mentioned, it was my first major project and it is full of mistakes and bad practices. After all, it was written as a part of learning process. Now I see a lot of things that could be improved or done completely differently.

Tech stack

API – backend, most of the application logic, server-side services, communication with the database.

  • Java 8
  • Spring Boot
  • Spring Security with JWT
  • REST services
  • JPA as ORM
  • PostgreSQL database
  • Docker containers
  • Lombok for code simplification
  • Swagger for API documentation and testing

MOBILE – hybrid mobile application for both Android and iOS systems

  • Ionic 3 framework based on Angular and Typescript
  • Cordova

WEB – control panel for administrator for managing games and users

  • Angular 5
  • Typecript
  • Material UI

STATIC – a static website with promotional materials and application description

Mobile app screenshots

Web admin panel

Screenshots of the admin’s game management panel. The city game form contains gameplay descriptions, positive (if it can be completed within the given time) and negative ending (if time is up), goal, game duration, categories and difficulty. You can add checkpoints to the game containing GPS coordinates, a question with an answer, or optionally, a QR code and a hint.