Skip to content

Midas-Labs/backend-engineer-assessment

Repository files navigation

Getting Started

IMPORTANT: Do not send pull requests to this repository. This is a template repository and is not used for grading. Any pull requests will be closed and ignored.

Introduction

If you are reading this, you are probably have received this project as a coding challenge. Please read the instructions carefully and follow the steps below to get started.

Setup

Pre-requisities

To run the application you would require:

On macOS:

First, you need to install Java 21 or later. You can download it from Azul or use SDKMAN.

brew install --cask zulu21

You can install Temporal using Homebrew

brew install temporal

or visit Temporal Installation for more information.

You can install Docker using Homebrew

brew install docker

or visit Docker Installation for more information.

Other platforms

Please check the official documentation for the installation of Java, Temporal, and Docker for your platform.

Stripe API Keys

Sign up for a Stripe account and get your API keys from the Stripe Dashboard. Then in application.properties file add the following line with your secret key.

stripe.api-key=sk_test_51J3j

Run

You are required to first start the temporal server using the following command

temporal server start-dev

and then run the application using the following command or using your IDE.

./gradlew bootRun

Other commands

Lint

To run lint checks, use the following command

./gradlew sonarlintMain

Code Formatting

To format the code, use the following command

./gradlew spotlessApply

Guides

The following guides illustrate how to use some features concretely:

Docker Compose support

This project contains a Docker Compose file named compose.yaml. In this file, the following services have been defined:

Please review the tags of the used images and set them to the same as you're running in production.

About

Backend Engineer Code Assessment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages