# Structuring a Ktor project

DevFeed: [Structuring a Ktor project](<https://devfeed.tech/articles/structuring-a-ktor-project-25562.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2021/ktor-project-structure/>)

Author: Marco Gomiero

Published: 2021-04-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [Ktor](<https://devfeed.tech/topics/ktor.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [framework](<https://devfeed.tech/tags/framework.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [routing](<https://devfeed.tech/tags/routing.md>), [testing](<https://devfeed.tech/tags/testing.md>)

## AI overview

This tutorial introduces a series about building a backend with Ktor and explains how to structure a Ktor project. It covers dependency injection, configuration, testing, and the project-generation wizard in IntelliJ or start.ktor.io.

## Source excerpt

SERIES: Building a backend with Ktor Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5 Generate API documentation from Swagger on Ktor Part 6: How to schedule jobs with Quartz on Ktor Part 7: Moving from mobile to backend development with Ktor It's been a few months since I've started working with Ktor to build the backend of Revelop. We decided to go with Ktor because it is a lightweight framework, easy to use and with a gentle learning curve even for a mobile developer.