Skip to content

DjaPy/fot-twenty-readers-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fot-twenty-readers-go

Tests golangci-lint

Go application for generating psalm reading calendars for Orthodox Church readers.

About the Project

The application creates Excel calendars that distribute the reading of the Psalter (150 psalms divided into 20 kathismas) among 20 readers throughout the year, accounting for the Orthodox calendar.

Features

  • Manage reader groups with customizable start offset
  • Generate Excel calendars for any year (2025-2045)
  • Store calendars in database
  • Retrieve current kathisma by reader number
  • Web interface with HTMX

Quick Start

# Clone the repository
git clone https://github.com/DjaPy/fot-twenty-readers-go.git
cd fot-twenty-readers-go

# Build and run
go build -o for-twenty-readers cmd/main.go
./for-twenty-readers --port 8080

Open browser: http://localhost:8080

API

Main Endpoints

# Create reader group
POST /groups
  name=Church Name&start_offset=1

# Generate calendar
POST /groups/{id}/generate
  year=2025

# Get current kathisma
GET /groups/{id}/current-kathisma?reader_number=5

Example: Get Current Kathisma

curl "http://localhost:8080/groups/{group-id}/current-kathisma?reader_number=5"

Response:

{
  "reader_number": 5,
  "date": "2025-12-07",
  "kathisma": 19,
  "year": 2025
}

Technologies

  • Go 1.22+
  • Storm/BoltDB - embedded database
  • Excelize - Excel generation
  • Chi - HTTP router
  • HTMX - dynamic UI
  • Tailwind CSS

Development

just lint           # Linting
just test           # Tests
just all-check      # Full check

Docker

docker build -t for-twenty-readers .
docker run -p 8080:8080 for-twenty-readers

License

MIT

Contact

About

Go version for-twenty-readers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors