A Ruby on Rails application for managing your library and tracking your reading goals.
-
Comprehensive Book Management Manage and organize a library of books, authors, genres, and series effortlessly.
-
Advanced Search Functionality Easily find books, authors, or genres using powerful search capabilities provided by the Ransack gem.
-
Generate PDF Reports Export your customized book shopping list or other data into a professionally styled PDF, powered by Wicked PDF.
-
Book Ratings and Reviews Add ratings to your books to keep track of your preferences, helping you make informed decisions about your next read.
-
Reading Goals Tracking Stay motivated by setting and monitoring your personalized reading goals, ensuring steady progress in your literary journey.
-
Individual Book Status Tracking Track the status of each book in your library — whether it's unread, currently reading, or completed — for seamless organization.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Make sure you have the following installed on your system:
- Ruby 3.2.2
- Rails 7.1.x
- SQLite3
- Node.js & Yarn (for Vite)
You can manage your Ruby versions using chruby.
-
Clone the repository:
git clone https://github.com/rubyandcoffee/reading_list.git cd reading_list
-
Install dependencies:
bundle install
-
Set up the database:
rails db:create db:migrate db:seed
Start the Rails server:
rails server
Alternatively you can build and run in docker:
docker build -t reading_list .
docker run -p 3000:3000 reading_list
Open your browser and navigate to http://localhost:3000
.
To run Vite:
bin/vite dev
You can easily navigate the application using the navigation bar at the top. Filter your books in the search bar at the left, and see your TBR list on the right.
To run tests, simply run:
rails test
For deploying to production, consider using a platform like Heroku, AWS, or any other service that supports Ruby on Rails applications. Make sure to configure your environment variables and database properly.
We welcome contributions! Please follow these steps to contribute:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-name
). - Create a new Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Ruby on Rails 7.1
- SQLite3 (default database)
- VueJS
- Vuetify for styling
- Vite for frontend assets
- Ransack for advanced search
- Wicked PDF for PDF export
- Chartkick for charts
- Redis for caching
- Sentry for error tracking