CoolReads is a web application inspired by Goodreads, designed to offer a more user-friendly and socially engaging platform for book lovers. Users can manage their personal libraries, track their reading progress, explore book recommendations, and connect with other readers.
- π§Ύ Personal Bookshelves: Create and customize your own bookshelves with names and organization methods that suit you.
- π Track Reading Progress: Set reading statuses (Read, Want to Read, Currently Reading, Did Not Finish) and track how far youβve gone.
- π£οΈ Reviews and Ratings: Share your thoughts on books you've read and engage with community reviews.
- π§βπ€βπ§ Social Features: Add friends, interact with other usersβ reviews, and receive notifications.
- π οΈ Advanced Search: Find books or users instantly with a responsive search interface.
- π Book Statistics: Authors and users can view detailed analytics on book interactions.
- π Multilingual Support: Interface available in English and Portuguese.
- π¨ Modern UI: Vue.js-powered frontend with dynamic and responsive components.
- Vue.js β Modern JavaScript framework for building UI
- Vuex β State management
- Vue Router β Routing and navigation
- Axios β HTTP requests
- Figma β UI prototyping
- Java & Spring Boot β Core business logic, REST API
- Spring Security β Authentication and authorization
- Spring Data JPA (Hibernate) β ORM and database interaction
- Redis β In-memory cache for performance
- PostgreSQL β Relational database
- Docker β Containerization
- Ansible β Infrastructure automation
- Google Kubernetes Engine (GKE) β Scalable cloud deployment
- GitHub Actions β CI/CD pipeline
The project follows a layered architecture:
- Presentation Layer: Vue.js frontend + Spring MVC REST API
- Business Layer: Core logic in Spring Boot
- Integration Layer: Spring Data JPA (Hibernate)
- Data Layer: PostgreSQL + Redis
You can find system architecture diagrams and class designs in the /VPP
folder.
-
Frontend:
cd CoolReads/frontend npm install npm run serve
-
Backend:
cd CoolReads/backend/coolreads sudo sh start.sh mvn spring-boot:run
To build and run containers locally:
docker-compose up --build
- Set your Google Cloud credentials.
- Use Ansible to deploy:
cd backend/ansible ansible-playbook gke-cluster-create.yml ansible-playbook coolreads-deploy.yml
Here are some example views of the application in action. (Insert your images in this section)
To include your own screenshots, add them to a screenshots/
folder in the root of the repository and update the image paths above accordingly.
CoolReads/
βββ backend/
β βββ src/
β βββ ansible/
β βββ VPP/
βββ frontend/
β βββ src/
β βββ components/
β βββ views/
β βββ services/
βββ Dockerfile
CoolReads was evaluated through:
- Expert-based heuristic evaluation
- Cognitive walkthroughs
- Empirical testing with early-stage users
Findings and user-centered design insights are documented in the CoolReads___Arquitetura.pdf
.
This project was developed as part of the Arquiteturas Aplicacionais course at University of Minho. All rights reserved to the student authors.
- AndrΓ© Lucena
- Carlos Machado
- GonΓ§alo Sousa
- JoΓ£o Castro
- JosΓ© Barbosa