A simple full-stack Rails application for managing ebooks, which can be bought/sold by users.
Built as a portfolio project to demonstrate testing practices, model design (including polymorphic associations), and clean Rails architecture.
- User authentication using
has_secure_password - Full CRUD for ebooks and users
- Tagging system with a polymorphic join model (
Tagging) - Email notifications on key events (e.g., user registration)
- Thorough test coverage using RSpec (models, requests, system, mailers, views, routing)
- Modern UI styled using Bootstrap
- Ready for CI and PostgreSQL migration
git clone https://github.com/antoniomnds/ebook_store.git
cd ebook_store
bundle install
rails db:setup
cp .env.example .env
⚠️ Note: App currently uses SQLite for local development. Plan includes migrating to PostgreSQL for production readiness.
bundle exec rspecOptionally run rubocop code formatter:
bundle exec rubocop -a -f gCoverage with:
open coverage/index.html- Tagging is a polymorphic join model (ebooks, authors, etc.)
- System specs simulate real user behavior (login, navigation)
- View specs validate rendering of key UI elements
- Database constraints align with validations (e.g., uniqueness + unique index)
- PostgreSQL migration
- GitHub Actions CI pipeline with tests
- Deployment to Render, Fly.io or Railway
António Santos
LinkedIn