https://github.com/shahdd21/social-media-application
A project that simulates a real-world social media application
https://github.com/shahdd21/social-media-application
authentication authorization console data-structures database design-patterns hashing-algorithm hashing-passwords java oop security simulation social-media social-network
Last synced: 7 months ago
JSON representation
A project that simulates a real-world social media application
- Host: GitHub
- URL: https://github.com/shahdd21/social-media-application
- Owner: Shahdd21
- Created: 2024-11-06T01:58:10.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-12-21T11:45:17.000Z (10 months ago)
- Last Synced: 2025-01-13T18:33:45.641Z (9 months ago)
- Topics: authentication, authorization, console, data-structures, database, design-patterns, hashing-algorithm, hashing-passwords, java, oop, security, simulation, social-media, social-network
- Language: Java
- Homepage:
- Size: 153 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Social Media Application
## Description
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.## UML Class Diagram
## Features
### User Functionality
* Registration & Login: Secure password hashing for user authentication.
* Profile Management: Users can edit their profile information.### Messaging
* Direct Messages: Send and receive messages between users.### Notifications
* Keep users updated about important events such as new messages, friend requests, follows, or group invites.### Groups
* Create and manage groups, add members, and interact with group posts.
* Supports privacy options to control who can view and interact with the group.### Pages
* 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.## Security
* Secure password hashing implemented using a custom algorithm to ensure data safety.## Architectural Design
### Manager Classes
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.### Repository Classes
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.### Database Class
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.## Future Enhancements
* Implement a graphical user interface (GUI).
* Integrate a database.
* Add multimedia support for posts and messages.
* Extend messaging functionality to include group chats.