Skip to content

Repository files navigation

Books Monorepo

Overview

This application is an audiobook management platform. It allows users to organize, track, and convert audiobooks, manage user accounts, and interact with their audiobook library through a modern web interface. The backend provides APIs for book management, conversion, and user authentication, while the frontend offers a responsive UI for browsing and managing books.

Features

  • Manage a library of audiobooks (add, edit, delete)
  • Track read/unread status and metadata for each book
  • Upload and convert audiobook files (e.g., zip of mp3s to m4b)
  • Automatic metadata extraction and modification
  • User authentication and account management
  • Settings management via web interface
  • Dockerized deployment for easy setup
  • Fast, modern React frontend (Vite)
  • RESTful Fastify backend
  • Shared TypeScript types for type safety across client and server

This is a monorepo for a full-stack audiobook management application, including a React client (Vite), Fastify server, and shared TypeScript types.

Structure

  • projects/client: React frontend (Vite)
  • projects/server: Fastify backend
  • projects/shared: Shared TypeScript types and utilities
  • bin/: Production build output

Getting Started

Prerequisites

  • Node.js >= 24.0.2
  • npm >= 10.9.2
  • Docker + Docker Compose (for containerized run)

Run with Docker (Published Image)

Pull only the latest docker-compose.yml from the remote repo:

git fetch origin && git checkout origin/HEAD -- docker-compose.yml

Start the container:

docker compose up -d

Install dependencies

npm install

Development

Start both client and server:

npm start

Client: http://localhost:3000 Server: http://localhost:3001

Build for Production

npm run build

Lint

npm run lint

Docker

To run the server in Docker:

docker compose up -d

Scripts

  • npm start - Start client and server in development
  • npm run build - Build all packages for production
  • npm run lint - Run lint checks
  • npm run analyze - Analyze client bundle size

Todo

Add manage users page
Reset password
Persist read books
Allow upload of zip of mp3s
Modification of metadata
Modify settings via web interface
Automatic download of all books in an audible account and convert to m4b

Todo

Add manage users page
Reset password
Persist read books
Allow upload of zip of mp3s
Modification of metadata
Modify settings via web interface
Automatic download of all books in an audible account and convert to m4b

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages