tilawah-hub

command module
v0.0.0-...-ad3eb56 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2024 License: AGPL-3.0 Imports: 12 Imported by: 0

README

Introduction

tilawah-hub is a forge for Qurʾān recitations. It aims to streamline collection of Qurʾān recitations, and thus, development of related software.

Unfortunately, there is no online demo at this point.

Features

  • CRUD on Users, Recitations, Recitation Files, Recitation Timings
  • Automatically generate word level timings using lafzize

Limitations/Upcoming Features

  • Emulation of the quran.com API for audio endpoints
  • Ability to make a recitation private
  • Administration panel
  • Docker + Compose deployment
  • A setting to automatically lafzize on upload
  • Automatic database migration
  • Better input validation, for example, for verse keys

Ecosystem

This project aims to ease the development of a range of software. Some examples include:

  • Qurʾān applications can use the audio and timing files to enable anyone to listen to their own recitations with word by word highlighting.
  • A program can be written to automate generation of Qurʾān videos. This would likely need a bit more configuration/modifications to the timings in case of long verses.
  • Tarteel AI or similar software can be used to automatically analyse recitations for mistakes. Or, in reverse, user sessions could be exported from Tarteel AI to tilawah-hub so that all the benefits of tilawah-hub's standardisation can be reaped.
  • A GUI timings editor would be greatly beneficial. zonetecde/QuranCaption-2 is very similar, however, a standardisation of the timings format is needed. Note that the word splitting is as per the quran.com API's text_uthmani field, and preserving it is important for reliability across programs.

Other ideas are welcome!

API Reference

Check docs/swagger.yaml. Do note that authenticated requests require a session_token cookie. swag doesn't seem to support documenting this yet.

The audio files are present at /uploads/{username}/{slug}/{verse_key}.mp3.

The timings files are present at /uploads/{username}/{slug}/{verse_key}.json.

Install Instructions

Development Dependencies

Runtime Dependencies

Compiling

Clone the source code

git clone https://git.sr.ht/~rehandaphedar/tilawah-hub
cd tilawah-hub

Generate SQL and build

sqlc generate
go build .

Run database migrations (Make sure data/ exists)

migrate -path internal/db/migrations -database sqlite3://data/db.sqlite up

Generate OpenAPI specification

swag f
swag i

Deploying

Copy tilawah-hub, data/config.toml, and internal/db/migrations.

Run database migrations (Make sure data/ exists)

migrate -path internal/db/migrations -database sqlite3://data/db.sqlite up

Edit config.toml and run:

./tilawah-hub

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
db
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL