A modern application to manage your book collection, developed with Angular 21.0.2. BookTracker allows you to discover new titles, track your reading progress, and organize your digital library efficiently. It offers advanced features such as genre search, personalized reading statistics, and reading goal management. Built with Angular, TailwindCSS, and RxJS, it presents an elegant interface with light/dark theme support, subtle animations, and a fully responsive design that ensures an optimal experience on any device.
- Discover Books: Explore a wide collection of books with search and filtering by genre
- Reading Tracking: Record your reading progress and set goals
- Adaptive Interface: Responsive design with light/dark theme support
- Smooth Animations: Enhanced user experience with subtle animations
- Node.js (v18 or higher)
- npm (v9 or higher)
- Angular CLI (v21.0.2)
-
Clone the repository:
git clone https://github.com/rinsdoc/angular-book-app
-
Install dependencies:
npm install
-
Start the development server:
ng serve
-
Navigate to
http://localhost:4200/in your browser
The project follows a Hexagonal Architecture (Ports & Adapters) pattern, organizing code into clear layers:
src/
βββ app/
β βββ components/ # UI Components
β β βββ book-detail/ # Book detail view
β β βββ book-list/ # Books catalog with filters
β β βββ book-review/ # Reviews display
β β βββ reading-stats/ # Reading statistics
β β βββ user-library/ # User's personal library
β βββ domain/ # Domain Layer (Business Logic)
β β βββ book.ts # Book entity
β β βββ user-book.ts # User-Book relationship
β β βββ reading-session.ts # Reading session entity
β β βββ book-repository.port.ts
β β βββ user-book-repository.port.ts
β β βββ reading-session-repository.port.ts
β βββ infrastructure/ # Infrastructure Layer (Adapters)
β β βββ book-repository.adapter.ts
β β βββ user-book-repository.adapter.ts
β β βββ reading-session-repository.adapter.ts
β βββ application/ # Application Layer (Use Cases)
β β βββ book.service.ts # Book management service
β βββ services/ # Additional Services
β β βββ book.service.ts
β β βββ reading-session.service.ts
β β βββ theme.service.ts # Theme management
β βββ app-routing.module.ts # Routing configuration
β βββ app.component.* # Root component
β βββ app.module.ts # Main module
βββ assets/ # Static resources
β βββ books.json # Books data
β βββ user-books.json # User library data
β βββ reading-sessions.json # Reading sessions data
β βββ reviews.json # Reviews data
β βββ *.png # Images
βββ styles.css # Global styles with TailwindCSS
- Domain: Contains business entities and repository ports (interfaces)
- Infrastructure: Implements repository adapters that handle data persistence
- Application: Contains services that orchestrate business logic
- Components: Presentation layer with Angular components
These resources will help you better understand the technologies used in BookTracker:
- Angular Documentation - Official guide and reference for Angular development
- Angular Material - Material Design components for Angular
- RxJS - Reactive programming library used in Angular
- TailwindCSS - CSS framework used for interface design
- Tailwind Animation - Plugin for adding animations with Tailwind