Giter Club home page Giter Club logo

teaching-heigvd-amt-2019-project-two's Introduction

Teaching-HEIGVD-AMT-2019-Project-Two

Project description

This project is a simple REST API, implemented purely using the Spring Framwork, in the context of the AMT Course, followed at HEIG-VD.

The purpose of this project was to introduce students to the Spring framework, through SpringBoot, as well as REST API developpement through the openAPI / swagger system.

Project dependencies

To run this project, you MUST have the following installed :

  • maven
  • docker-compose

This project depends on the following ports being available within the base system :

  • 80 for the API endpoints
  • 3306 for the SQL DB passthrough

How to manually build this project

This project is distributed as a jar To build the project, users MUST have Maven installed.

To build this project, users MUST run the following command (in the project root directory) :

mvn -f app/pom.xml clean package -DskipTests 
mvn -f auth/pom.xml clean package -DskipTests 

How to test this project

Due to the cucumber JVM testing depending on the dockerised envirement to be available, the project may be tested using standard deploy script (deploySite.sh), found at the root of the project.

Along with cucumber JVM testing, this script also generates a cucumber coverage report. Said report is integrated into the final jar file, and may be accessed, when running the APIs, at the following path from any web browser :

How to run this project

To run this program, due to depending on a specific dockerised environment, you MUST run it from the deploySite.sh script, found at the root of the project.

The script will build the project, deploy the dockerized infrastructure and the website, along with a default dataset of over 1 million entries.

You can log into the AUTH API with the following default users (<username>:<password>):

  • admin:password for a admin user, containing 1 million match entries
  • user:password for an standard user

The Auth API definition may be accessed here : http://localhost/api/auth The Application API definition may be accessed here : http://localhost/api/app

When testing the routes via swagger-ui don't forget to put Bearer before the token given to you at login.

Report

Design Decisions

A list of our design decisions may be found at the following link.

Implementation details

The details of our implementation may be found at the following link.

Testing strategy

Our testing strategy is explicited at the following link.

Performance experiments

The results of our experiments about data paging may be found at the following link.

teaching-heigvd-amt-2019-project-two's People

Contributors

mbonjour avatar wasadigi avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.