A robust console-based social media application that implements Object-Oriented Programming (OOP) concepts, leveraging design patterns and using Java best practices. This project simulates the core functionalities of a social media platform, including user management, messaging, groups, pages, and notifications.
- Registration & Login: Secure password hashing for user authentication.
- Profile Management: Users can edit their profile information.
- Direct Messages: Send and receive messages between users.
- Keep users updated about important events such as new messages, friend requests, follows, or group invites.
- Create and manage groups, add members, and interact with group posts.
- Supports privacy options to control who can view and interact with the group.
- Users can create and manage Pages for businesses, organizations, or interests.
- Adding details about the page such as description, category, and contact information.
- Publishing posts on the page to interact with followers.
- Secure password hashing implemented using a custom algorithm to ensure data safety.
These classes handle the main logic for their specific features. They act as a middle layer between the repositories (which manage data) and the rest of the application. This makes the code easier to understand and change.
These classes are in charge of saving and getting data. They hide the details of how the data is stored and make it easier to switch to a different storage method in the future without changing the rest of the code.
This class provides access to the repositories. Its methods only return the required repository when needed, ensuring a clear and simple way to manage the data layer.
- Implement a graphical user interface (GUI).
- Integrate a database.
- Add multimedia support for posts and messages.
- Extend messaging functionality to include group chats.