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
To watch the video presentation, click here
Revision history
No changes have been made.
GROUP24142, 18/12/2024
- Raphael Moragas Dias Taveira Gonçalves, [email protected]
- João Victor Botelho Duarte, [email protected]
- Luiz Henrique Mamede Queiroz, [email protected] (Editor)
- Victor Duarte Frauzino Lima de Matos, [email protected]