ContrarianReads is a crowdsourced platform that helps readers explore diverse perspectives through element recommendations. When users input a non-fiction element, the platform generates recommendations for other non-fiction works that present opposing viewpoints or alternative arguments. Community members can submit element booksWithSuggestions and vote on recommendations, helping surface the most relevant counterpoint books for each title.
The platform is designed to combat the "filter bubble" effect—where algorithms and personal choices limit exposure to differing viewpoints—by actively encouraging readers to explore perspectives that challenge their existing beliefs. By facilitating access to well-reasoned opposing arguments, ContrarianReads helps users broaden their intellectual horizons and develop a more nuanced understanding of complex topics.
Main screen Database ERD diagramWork in progress. Will be soon available online.
Work in progress. Will be soon available online.
- Built with Angular using Angular Material for UI components
- Standard Angular component-based architecture
- Uses RxJS for reactive programming
- Allows logged-in users to search for books, submit, upvote and comment alternative recommendations
- Secure login and register system implementing JWT authentication
- Route guards to prevent address tampering using AuthGuard
- User profile and user activity dashboard
- Alternative book recommendations based on user activity
- Hosted on Netlify
- Find the backend repo here
- Developed with C#, .NET Core and ASP.NET Core
- Service-based architecture with DTOs for data transfer
- Uses AutoMapper for data mapping
- Provides secure APIs for authentication using JWT
- Books/recommendations/comments/upvotes management through secure RESTful endpoints
- Password encryption using BCrypt
- Strict input validation and rate limiting for login attempts
- Global exception handling middleware
- Data stored in Microsoft SQL Server database
- Backend and database hosted on Microsoft Azure
- (WIP)
This project is licensed under the MIT License. Logos from SVGRepo.
While this is primarily a personal project, bug reports and feature booksWithSuggestions are welcome in the issues section.