https://github.com/rasjonell/x-library
Self-Hosted, Open, and Editable Library Management Platform
https://github.com/rasjonell/x-library
elixir goodreads library phoenix phoenix-framework rest-api
Last synced: about 1 year ago
JSON representation
Self-Hosted, Open, and Editable Library Management Platform
- Host: GitHub
- URL: https://github.com/rasjonell/x-library
- Owner: rasjonell
- Created: 2022-07-30T15:03:41.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-13T20:51:03.000Z (almost 3 years ago)
- Last Synced: 2025-02-02T06:16:40.549Z (over 1 year ago)
- Topics: elixir, goodreads, library, phoenix, phoenix-framework, rest-api
- Language: Elixir
- Homepage: https://rasjonell.github.io/x-library/
- Size: 3.05 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# X Library
Self-Hosted, Open, and Editable Library Management Platform

_Check out the cross-platform mobile client for this API: [X-Library Mobile](https://github.com/rasjonell/x-library-mobile)_
# Ideas To Implement Next
- [ ] Federated Network of Book Reviews/Recommendations
- Ability for peers to sync with other peers
- Social networking capabilities(follow users from other instances(ActivityPub?))
- [ ] RSS Feed for reviews
- Use ISBN database services to link the book inside the review to an external source
- [ ] Statistics
- GoodReads style statistics for both books and users
- [x] Add books from an external source
- use OpenLibrary or a similar service to fetch books with the ISBN number
# Note for Clients
The API now allows book creation/addition with only the ISBN number, thus, the [OpenLibrary API](https://openlibrary.org/developers/api) can be leveraged in your client to search for books, authors, genres, etc. Then use the retrieved ISBN to add the book to the X Library platform.
# Development
## Setup
To start your Phoenix server:
* Update `dev.exs` config with your database credentials
* Rename `dev.example_secrets.exs` to `dev.secrets.exs` and follow the examples to setup the authentication secrets.
* Install dependencies with `mix deps.get`
* Create, migrate, and seed your database with `mix ecto.setup`
* Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`
## Usage
Check out the OpenAPI Docs Website: https://rasjonell.github.io/x-library/
Or jump to [API Usage Docs](#api-usage-docs)
You can [download](https://raw.githubusercontent.com/rasjonell/x-library/main/x-library-api-spec.yaml) the OpenApi spec and import it in Insomnia or Postman and get a testable API.
### Importing OpenAPI specs into your favorite API platform.
- Postman: [Working With OpenAPI](https://learning.postman.com/docs/integrations/available-integrations/working-with-openAPI/)
- Insomnia:
- Open up Insomnia
- Navigate to Dashboard
- Click `Create`
- Choose `URL`
- Paste this URL: `https://raw.githubusercontent.com/rasjonell/x-library/main/x-library-api-spec.yaml`
- Answer the prompts to create a new Design Document