Skip to content

Commit c6bcb9e

Browse files
authored
Merge pull request #5 from stslex/codex/explain-codebase-structure-to-newcomers
Add project docs and GitHub Pages
2 parents 6551bb2 + b940b15 commit c6bcb9e

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed

.github/workflows/pages.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Deploy Docs to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: 'pages'
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v3
22+
- uses: actions/configure-pages@v3
23+
- uses: actions/upload-pages-artifact@v1
24+
with:
25+
path: './docs'
26+
deploy:
27+
needs: build
28+
runs-on: ubuntu-latest
29+
environment:
30+
name: github-pages
31+
url: ${{ steps.deployment.outputs.page_url }}
32+
steps:
33+
- id: deployment
34+
uses: actions/deploy-pages@v1

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# BackWizard
2+
3+
BackWizard is a modular Ktor server application written in Kotlin. The project is structured as a multi‑module Gradle build and provides authentication, user management and admin utilities. The server is packaged as a Docker container and is deployed via GitHub Actions.
4+
5+
## Project Structure
6+
7+
- `app` – main application module containing the `Application.kt` entry point and Ktor plugins setup.
8+
- `core:core` – common utilities such as configuration helpers, response helpers and JWT utilities.
9+
- `core:database` – database plugin using Exposed ORM and PostgreSQL.
10+
- `feature:auth` – registration, login and token refresh logic.
11+
- `feature:user` – endpoints and domain logic for user data.
12+
- `feature:admin` – admin utilities like resetting the user table.
13+
14+
Modules are declared in `settings.gradle.kts` and loaded using Koin for dependency injection.
15+
16+
## Getting Started
17+
18+
1. **Configuration** – supply `app/src/main/resources/application.conf` with database and JWT settings. The repository excludes this file from version control. Tests verify that all required properties exist.
19+
2. **Build** – run `./gradlew build` to compile and test the project.
20+
3. **Docker** – the `Dockerfile` creates a fat jar and exposes port `8080`.
21+
4. **Deployment** – GitHub Actions (`.github/workflows`) build, push and deploy Docker images.
22+
23+
## Further Reading
24+
25+
- [OpenAPI Specification](documentation/documentation.yaml)
26+
- `core` and `feature` modules for detailed implementation of each service.
27+

docs/index.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# BackWizard
2+
3+
BackWizard is a modular Ktor server application written in Kotlin. The project is structured as a multi‑module Gradle build and provides authentication, user management and admin utilities. The server is packaged as a Docker container and is deployed via GitHub Actions.
4+
5+
## Project Structure
6+
7+
- `app` – main application module containing the `Application.kt` entry point and Ktor plugins setup.
8+
- `core:core` – common utilities such as configuration helpers, response helpers and JWT utilities.
9+
- `core:database` – database plugin using Exposed ORM and PostgreSQL.
10+
- `feature:auth` – registration, login and token refresh logic.
11+
- `feature:user` – endpoints and domain logic for user data.
12+
- `feature:admin` – admin utilities like resetting the user table.
13+
14+
Modules are declared in `settings.gradle.kts` and loaded using Koin for dependency injection.
15+
16+
## Getting Started
17+
18+
1. **Configuration** – supply `app/src/main/resources/application.conf` with database and JWT settings. The repository excludes this file from version control. Tests verify that all required properties exist.
19+
2. **Build** – run `./gradlew build` to compile and test the project.
20+
3. **Docker** – the `Dockerfile` creates a fat jar and exposes port `8080`.
21+
4. **Deployment** – GitHub Actions (`.github/workflows`) build, push and deploy Docker images.
22+
23+
## Further Reading
24+
25+
- [OpenAPI Specification](documentation/documentation.yaml)
26+
- `core` and `feature` modules for detailed implementation of each service.
27+

0 commit comments

Comments
 (0)