Code Monkey home page Code Monkey logo

simple-online-store-kotlin's Introduction

Project Purpose

  • This project was build to be part of my personal portfolio.
  • It is just a sample code that is not intended to be used in production.
  • This Spring Boot application provides a REST API for an oversimplified ecommerce website without integration with payment or delivery methods.
  • It includes CRUD operations for Product, Category, User, PurchaseOrder and PurchaseOrderLine entities. It also includes a simple authentication mechanism using JWT.
  • The idea is that is the exposes the same API as in https://github.com/ahierro/simple-online-store-java but made in Kotlin instead of Java and some other slight differences like using Flyway instead of Liquibase, MySQL instead of PostgreSQL and Spring Web instead of WebFlux.

Technologies used for this project

  • Kotlin
  • Spring Boot 3.2.3
  • Spring Web
  • Spring Boot Docker Compose Support
  • Spring Security
  • Flyway
  • MySQL
  • Spring Data (including queries with pagination and sorting)
  • Test Containers
  • Swagger
  • JWT authentication
  • Junit
  • Gradle

Swagger documentation can be found at http://localhost:8080/swagger-ui.html

swagger

Local MySql instance is started automatically when running the application locally and the configuration is loaded from compose.yaml

  • In case you don't want to run docker compose automatically set
spring.docker.compose.enabled=false

and run the following command

docker run --detach --name mysql --env MYSQL_USER=myuser --env MYSQL_DATABASE=mydatabase --env MYSQL_PASSWORD=secret --env MYSQL_ROOT_PASSWORD=verysecret --volume mysql:/var/lib/mysql --publish 3306:3306 mysql

Postman collection file

simple-online-store-kotlin.postman_collection.json

Start Application

./gradlew bootRun

simple-online-store-kotlin's People

Contributors

ahierro 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.