pa - luizhqueiroz/LBAW-NewsHub GitHub Wiki

PA: Product and Presentation

To transform how movie and TV enthusiasts discover information, share news, and connect with one another, aiming to become the largest collaborative platform for entertainment lovers to engage and stay updated with the latest entertainment news.

A9: Product

Our platform, NewsHub, is a dynamic website designed for fans of movies, series, and all things entertainment. Inspired by the functionality of Reddit, NewsHub enables users to post news and updates, interact through comments, likes, and replies, and foster a vibrant community of movies enthusiasts that feel the urge to express themselves. With a modern design and robust features, NewsHub is the go-to hub for discussing the latest trends, sharing opinions, and connecting with like-minded individuals.

Whether you're a casual viewer or a dedicated cinephile, NewsHub offers an engaging space where every opinion counts and every interaction builds a stronger community.

1. Installation

The final version of the source code is now available in the group's Git repository. You can access it here.

The Docker image is available at the group's GitLab Container Registry using the production database and can be run with:

docker run -d --name lbaw24142 -p 8001:80 gitlab.up.pt:5050/lbaw/lbaw2425/lbaw24142

2. Usage

2.1. Administration Credentials

Administration URL: /admin/users

Username Password
[email protected] adm123

2.2. User Credentials

Type Username Password
basic account [email protected] 123456
news editor [email protected] 123456
comment editor [email protected] 123456
influencer [email protected] 123456

3. Application Help

Help features were implemented using placeholders in form inputs, such as for posting news, posting comments, and performing searches. Additionally, contextual error messages guide users in specific scenarios, such as in the password login form, edit form, or when dealing with oversized news or comments posts. Pop-ups and modals were also incorporated to assist users in completing actions, for example, when attempting to update news with empty content or delete a news item that cannot be deleted.

4. Input Validation

Input validation is handled comprehensively in both the backend and frontend to ensure data integrity and enhance the user experience. Backend validation is performed using the validate method from Illuminate\Http\Request to validate all user-submitted forms, such as login, registration, posting news, submitting comments, and editing profiles. Frontend validation is implemented using JavaScript for real-time validation of form inputs, ensuring fields are correctly filled. For example, it checks for empty fields when updating news content and displays appropriate error messages if validation fails. Both backend and frontend validation are applied during AJAX requests. If an error occurs, a clear and actionable error message is displayed to the user.

5. Revisions to the Project

Only minimal improvements were made to the database.

6. Implementation Details

6.1. Libraries Used

  • Laravel - Laravel is a framework used for server-side management, providing a robust framework for handling backend logic, routing, and database interactions. It is also utilized in the frontend, enabling the integration of server-rendered views and dynamic user interfaces.
  • Bootstrap - Bootstrap is employed to create a responsive and intuitive frontend design, ensuring compatibility across devices and screen sizes.
  • FontAwesome - FontAwesome is utilized for adding icons, enhancing visual elements and improving user interface clarity.
  • Mailtrap - Mailtrap is used for email testing during development, allowing the application to safely capture and test email messages without sending them to real recipients.
    (Credentials - email: [email protected] / password:Lbaw2024!!!)
  • TMDB (The Movie Database) - TMDB is a comprehensive movie database utilized to fetch and display movie-related information such as titles, posters, and release dates through its API.
  • Pusher - Pusher is a real-time communication service used to enable instant notifications and updates in the application. It was implemented to broadcast notifications for new comments, follows, and likes, ensuring users receive immediate updates for relevant actions.

6.2 User Stories

US Identifier Name Module Priority Team Members State
US01 Top News Feed M03 High João Victor, Luiz Henrique 100%
US02 See News Item M03 High Raphael Moragas 100%
US03 Search M04 Medium Luiz Henrique 100%
US04 Product Information M07 Medium Raphael Moragas 100%
US05 Recent News Feed M03 Medium Victor Duarte 100%
US06 News Item Comments M03 Medium João Victor 100%
US08 Login M01 High João Victor 100%
US09 Sign-up M01 High João Victor 100%
US10 Profile M02 High Luiz Henrique 100%
US11 User News Feed M02 High Luiz Henrique 100%
US12 Create News Item M03 High Raphael Moragas 100%
US13 News Item Details M03 High Raphael Moragas, Luiz Henrique 100%
US14 Other Users' Profiles M02 High Luiz Henrique 100%
US15 Logout M01 High Luiz Henrique 100%
US16 Comment Details M03 Medium Luiz Henrique 100%
US17 Vote M03 Medium Raphael Moragas 100%
US18 Create Comment M03 Medium Victor Duarte 100%
US19 Reputation M02 Medium João Victor, Luiz Henrique 100%
US20 Tags M06 Medium Luiz Henrique 100%
US21 Follows M06 Medium Luiz Henrique 100%
US22 Notifications M06 Medium Raphael Moragas, Luiz Henrique 100%
US23 Recover Password M01 Medium João Victor 100%
US24 Delete Account M02 Medium Luiz Henrique 100%
US25 Profile Picture M02 Medium Raphael Moragas 100%
US26 Influencer M02 Medium Victor Duarte 100%
US30 Manage News Item M03 High Victor Duarte 100%
US31 Manage Comments M03 Medium Luiz Henrique 100%
US32 Administer User Account M05 High Victor Duarte, Luiz Henrique 100%
US33 Block Unblock Account M05 Medium Victor Duarte 100%
US34 Delete User Account M05 Medium Raphael Moragas 100%
US35 Influencer and Tags M05 Medium João Victor 100%

A10: Presentation

1. Product presentation

NewsHub brings fans of movies and series together like never before! Designed for dynamic interaction, our platform lets users share, discuss, and explore everything in the entertainment world. Users can post, edit, and delete news, follow movie genres through tags, and engage with others by commenting, liking, and following. With real-time notifications for likes, comments, and follows, and a trending page that highlights the hottest and most talked about movies powered by the TMDB API, NewsHub keeps you up-to-date with what’s buzzing in cinemas and beyond. Top influencers stand out visually, and admins maintain a safe and engaging community with robust moderation tools.

Built on cutting-edge technology, NewsHub combines PHP and the Laravel Framework for backend development, JavaScript for interactivity, and Bootstrap for responsive design. HTML5, CSS, and FontAwesome ensure a modern, visually appealing layout, while AJAX delivers a smooth browsing experience. Whether you're exploring content or engaging with the community, NewsHub is your go-to platform for entertainment enthusiasts.

2. Video presentation

Assista ao vídeo

To watch the video presentation, click here


Revision history

No changes have been made.


GROUP24142, 18/12/2024