Skip to content
This repository has been archived by the owner on Feb 12, 2021. It is now read-only.

heig-AMT/gamify

Repository files navigation

Gamify

Build and publish Docker image Heroku App Status Run tests

This repository contains our version of the second project of the AMT class of HEIG-VD.

🌱 Our Cucumber reports for the dev branch are on GitHub Pages 🌱

☕ The generated spec API is on the repository Wiki

Structure

  • The docker folder contains deployment information for our images and environments.
  • The full-project folder is useful to open both the implementation and specs simulateneously in IntelliJ IDEA.
  • The gamify-impl contains a Spring Boot project that will gamify your next app. That's probably what you came here for ✌️
  • The gamify-specs contains our code-based specification. It is used to validate the behavior of the API.

Team

Name
Matthieu Burguburu matthieu.burguburu@heig-vd.ch
David Dupraz david.dupraz@heig-vd.ch
Alexandre Piveteau alexandre.piveteau@heig-vd.ch
Guy-Laurent Subri guy-laurent.subri@heig-vd.ch

Running the service (locally)

Assuming you have Docker installed locally, you can run the following scripts to get the app running on your 8080 port :

sh ./build-image.sh
sh ./run-compose.sh

The Swagger docs will then be available on the root endpoint.

Verifying the service with Cucumber

You can run the Cucumber validation via Maven. You need to make sure the app is running on your 8080 port :

cd gamify-specs/
mvn clean test

The reports are also generated and published to GitHub Pages.

Here are some of the behaviors verified in our 63 test scenarios :

JMeter

We've tested our /events endpoint with JMeter to make sure that concurrent calls would not be dropped. Our application creates some EndUserPointAward each time an event is posted by an application. These EndUserPointAward then get summed when aggregates are computed.

NB : The issues on /events have been fixed since Friday's demo.

Production Deployments

A live version of our API is available on Heroku. We're using a free plan, so it may need a few seconds to start up if the instance was previously paused 🚀