Skip to content

Repository files navigation

Piano Louvor JA — API

REST API for the Louvor JA (Piano) system. Serves hymnal data, albums, musics, lyrics, and bible references with full OpenAPI documentation.

Tech Stack

Layer Technology
Framework Hono + Zod OpenAPI
Validation Zod schemas → OpenAPI
Database SQLite (better-sqlite3 + Kysely)
Linter Biome
Tests Vitest + coverage
API Docs Scalar at /doc
Container Docker (Node 22)

Quick Start

git clone https://github.com/pianolouvorja/api.git
cd api
npm install
npm run dev          # http://localhost:3000

API documentation available at http://localhost:3000/doc (Scalar UI).

Scripts

npm run dev            # development with hot reload
npm run build          # compile TypeScript
npm run start          # run compiled output
npm run typecheck      # tsc --noEmit
npm run lint           # biome check
npm run test           # vitest run
npm run test:coverage  # vitest with coverage report
npm run test:watch     # vitest in watch mode

Project Structure

src/
  app.ts               # Hono app + Scalar setup
  routes/
    compat.ts          # /json_db/* and /file/* compatibility routes
  v1/
    categories/        # /v1/categories
    albums/            # /v1/albums
    musics/            # /v1/musics
    bible/             # /v1/bible
  db/
    migrations/        # SQL migrations (001-014)
scripts/
  import-upstream.ts   # mirror data from api.louvorja.com.br
data/
  catalog.db           # SQLite database

Contributing

See CONTRIBUTING.md for the full guide.

TL;DR: branch from staging, open PR against staging, CI must pass, one approval required.

License

MIT © Piano Louvor JA

About

REST API para hinários Louvor JA e SDA Hymnal — Hono + Zod OpenAPI + SQLite + Scalar

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages