Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

50 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Noty REST API
- This is a backend REST API developed using [Ktor](https://ktor.io) framework.
- It uses PostgreSQL as database to store and retrieve data.
- It's deployed on [Heroku](https://heroku.com) to publicly expose API.
## 👓 Features of Codebase
- Simple structure
- JWT Authentication
- Automatic deployment to Heroku using GitHub Actions CI.
- Tests
## 📙 Overview of Codebase
This is Gradle based multi-module project which is basically a server application.
It include two modules:
### Data
The data module consist all data related operations which interacts with data layer of the application i.e. PostgreSQL. It include database Entities and Tables of [JetBrains Exposed framework](https://github.com/JetBrains/Exposed) (ORM) and DAO classes for data operations.
You can take a look at package [here](https://github.com/PatilShreyas/NotyKT/tree/master/noty-api/data/src/dev/shreyaspatil/noty/data).
### Application
This is the main entry-point of the server application which is exposed to be accessed from a URL. It includes all the handling of routes, authentication, etc.
You can take a look at source [here](https://github.com/PatilShreyas/NotyKT/tree/master/noty-api/application).
[`application.conf`](https://github.com/PatilShreyas/NotyKT/blob/master/noty-api/application/resources/application.conf) file contain the information about the application like main module to run, environment configuration, port, etc.
## 🛠 Built with
- [Ktor](https://ktor.io/) - Ktor is an asynchronous framework for creating microservices, web applications, and more. Its fun, free, and open source.
- [Exposed](https://github.com/JetBrains/Exposed) - An ORM/SQL framework for Kotlin.
- [PostgreSQL JDBC Driver](https://jdbc.postgresql.org/) - JDBC Database driver for PostgreSQL.
- [Testcontainer](https://www.testcontainers.org/) - Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
- [Kotest](https://kotest.io/) - Kotest is a flexible and comprehensive testing project for Kotlin with multiplatform support.