EchoReviews is a web-based platform that allows users to explore, review, and manage their favorite music albums. Built with Spring Boot, this application provides a robust and user-friendly interface for music enthusiasts to share their thoughts and discover new music.
- User registration and authentication system
- User profiles with customizable information
- Admin and regular user role support
- Session management for secure access
- User banning system for content moderation
- High-risk user flagging for suspicious activity
- Password hashing for secure storage
- HttpOnly cookies to prevent XSS attacks
- User-agent validation to prevent session hijacking
- Comprehensive album catalog with detailed information
- Album details including:
- Title
- Artist
- Genre
- Release Year
- Cover Art
- Description
- Tracklist
- Streaming Platform Links (Spotify, Apple Music, Tidal)
- Dynamic search with multiple parameters (artist, release date)
- Support for multiple artists per album
- Image upload capability for album covers
- Admin panel for managing artists and albums
- Users can mark albums as favorites
- Personal favorite album collection for each user
- Easy management of favorite albums
- Database persistence of user preferences
- Users can write and publish album reviews
- Rating system for albums
- Comment functionality on reviews
- Rich text editing with markdown support (EasyMDE)
- HTML sanitization for secure content rendering
- Review moderation by administrators
- Risk assessment for review content
- Built with Spring Boot framework
- RESTful API architecture
- Service-oriented architecture pattern
- DTO pattern for data transfer
- Query-by-example for dynamic searching
- Entity mapping with repositories
- Database integration for persistent storage
- Database tables for:
- Users
- Albums
- Artists
- Reviews
- User favorites
- Session-based authentication
- Role-based access control
- Input validation and sanitization
- CSRF protection
- Content security policy headers
- OWASP HTML Sanitizer for user-generated content
- Session invalidation on logout
- Navigate to the registration page
- Fill in required information (username, email, password)
- Submit the registration form
- Secure password toggle for visibility control
- View the complete album catalog on the home page
- Use filters to sort by artist, genre, or year
- Dynamic search functionality for finding specific albums
- Click on individual albums for detailed information
- Click the heart icon on any album to add it to favorites
- Access your favorite albums through your user profile
- Remove albums from favorites with a single click
- Real-time updates in the database
- Navigate to an album's detail page
- Click on "Write Review"
- Use the markdown editor for rich text formatting
- Enter your review text and rating
- Submit the review for publication after sanitization
project-grupo-5/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/echoreviews/
│ │ │ ├── config/
│ │ │ ├── controller/
│ │ │ │ ├── api/
│ │ │ ├── dto/
│ │ │ ├── mapper/
│ │ │ ├── model/
│ │ │ ├── repository/
│ │ │ ├── security/
│ │ │ ├── service/
│ │ │ ├── util/
│ │ │ └── EchoReviewsApplication.java
│ │ └── resources/
│ │ ├── static/
│ │ │ ├── css/
│ │ │ └── images/
│ │ ├── templates/
│ │ │ ├── album/
│ │ │ ├── artist/
│ │ │ ├── auth/
│ │ │ ├── fragments/
│ │ │ ├── review/
│ │ │ ├── reviews/
│ │ │ ├── user/
│ │ │ └── error.html
│ │ └── application.properties
├── pom.xml
└── README.md
- darkxvortex
- paaul19
- M0ntoto
- noegomezz