{"repo":"ayr-ton/kamu-oss","free":true,"listed":false,"github":"https://github.com/ayr-ton/kamu-oss","clone":"git clone https://github.com/ayr-ton/kamu-oss.git","description":"You favorite book library","language":"Python","stars":81,"topics":["python","django","okta","htmx","podman","tailwindcss","vuejs"],"license":"MIT","category":"databases-storage","readme_excerpt":"Kamu \"Some books leave us free and some books make us free.\" — Ralph Waldo Emerson Kamu is an application for managing a physical library where you can add books, borrow and return them. Users browse libraries (different offices, cities, or friend groups), borrow available books, and join waitlists for unavailable ones. Tech Stack Layer Technology ------------ ---------------------------------------------------- Frontend Django templates + HTMX + petite-vue + Tailwind CSS Backend Django 5.0 (server-rendered HTML) Build Tailwind CSS standalone CLI (no JS build step) Database PostgreSQL everywhere Containers Podman + podman-compose CI/CD GitHub Actions Async Synchronous (feature-toggled, off by default) Requirements - Python 3.12+ - Podman and podman-compose - Tailwind CSS standalone CLI (for CSS development) Quick Start (Podman) Start the development environment: This starts the Django app and PostgreSQL via podman-compose. Run migrations and seed data: Visit http://localhost:8000. CSS Development When working on templates, run the Tailwind watcher in a separate terminal: Email Notifications (Optional) To enable email notifications (waitlist alerts, overdue reminders), set KAMU ENABLE ASYNC TASKS=True in your .env file and configure the DJANGO EMAIL environment variables. Notifications are sent synchronously during the request — no Redis or background workers needed. For overdue reminders, run the management command on a schedule (e.g. via Cloud Scheduler + Cloud Run Jobs): Qu","default_branch":null,"files":null,"tree":[],"storefront":"/r/ayr-ton","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ayr-ton/kamu-oss/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}