Giter Club home page Giter Club logo

auktion's Introduction

auktion

This is an API that allows users to create, manage, and bid on offers while ensuring the integrity of the auction process through the use of password authentication.

It's implemented in Kotlin using Spring Boot and uses Gradle as a build tool.

For storing data in memory it uses H2 database.

For working with amounts it uses Integer type and stores amounts in cents.

It uses following libraries/frameworks/tools:

  • Spring Boot 3 - for application configuration
  • Spring Data JPA - for data access
  • Spring Data REST (HAL) - for exposing REST API
  • JUnit Jupiter - for testing
  • MockMVC - for testing REST API
  • Jib Gradle Plugin - for building Docker images
  • H2 - for storing data in memory
  • Gradle - for building the application
  • Docker - for building Docker images

Features

  • Create an offer
  • Get an offer by id
  • Update an offer
  • Delete an offer
  • Get all offers
  • Search offers by status
  • Close an offer
  • Create a bid
  • Get a bid by id
  • Get all bids
  • Get all bids for an offer

Requirements

  • Java 11
  • Docker (optional)
  • Gradle (optional)
  • Docker Compose (optional)
  • Postman (optional)
  • IntelliJ IDEA (optional)

API Documentation

GET /offers - returns all offers

GET /offers/search/by-status?open={status} - returns all offers with given open status

GET /offers/{id} - returns offer with given id

GET /offers/{id}/bids - returns all bids for offer with given id

POST /offers - creates new offer

PUT /offers/{id} - updates offer with given id

DELETE /offers/{id} - deletes offer with given id

POST /offers/{id}/bids - creates new bid for offer with given id

PUT /offers/{id}/close - closes offer with given id

Authentication

To be implemented

Running the application

To run the application, use the following command:

./gradlew bootRun

Running the tests

To run the tests, use the following command:

./gradlew test

Building the application

To build the application, use the following command:

./gradlew build

To build the application without running the tests, use the following command:

./gradlew build -x test

Building the Docker image

To build the Docker image, use the following command:

./gradlew jibDockerBuild

The image will be available in the local Docker registry and then you can run it using the following command:

docker run -p 8080:8080 auktion:0.0.1-SNAPSHOT

auktion's People

Contributors

a-fatah avatar

Watchers

 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.