GitHunt
KE

Atlas backend demonstrates real world application example via RealWorld specs and API with Kotlin and Ktor

Atlas

Atlas is a Kotlin + Ktor backend demonstrating a RealWorld-compliant API with practical usage examples.

Getting Started

  1. Clone the repository
  2. Download and import the Postman collection for testing
  3. Run the project

The server starts on http://localhost:7003/api/ by default. You can change it in application.yaml.

Built With

API Routes Overview

Users

  • POST /api/users – Register a new user
  • POST /api/users/login – Authenticate and get access tokens
  • GET /api/user – Get the current authenticated user
  • PUT /api/user – Update current user profile

Profiles

  • GET /api/profiles/celeb_{USERNAME} – Get a user's profile (public info + follow status)
  • POST /api/profiles/celeb_{USERNAME}/follow – Follow a user
  • DELETE /api/profiles/celeb_{USERNAME}/follow – Unfollow a user

Articles

  • POST /api/articles – Create an article
  • GET /api/articles/{slug} – Get a single article by slug
  • PUT /api/articles/{slug} – Update an article
  • DELETE /api/articles/{slug} – Delete an article
  • GET /api/articles – List articles with optional filters (author, tag, favorited)

Comments

  • POST /api/articles/{slug}/comments – Add a comment to an article
  • DELETE /api/articles/{slug}/comments/{commentId} – Delete a comment
  • GET /api/articles/{slug}/comments – List comments for an article

Tags

  • GET /api/tags – Get all available tags

Project Structure

+ core/
  + config/       # Main module, server setup, plugins
  + di/           # Dependency injection
  + exceptions/   # Custom exceptions
  + extensions/   # Extensions and helpers
  + navigation/   # Route navigation
  + security/     # JWT & auth setup

+ features/
  + articles/     # Articles feature
    + data/       # Persistence & tables
    + domain/     # DTOs, contracts
    + presentation/ # Routes
  + comments/...
  + profiles/...
  + tags/...
  + users/...
- Application.kt  # Entry point

Contributing

Contributions are welcome! Feel free to submit pull requests or open issues.

Contact

Kenan Karic – kenan.karic@outlook.com

License

License

Languages

Kotlin98.3%Shell1.7%

Contributors

Apache License 2.0
Created December 3, 2023
Updated November 28, 2025