- A social media application that allows users to create profiles, post content, and interact with other users.
- The application is built using Java and features various functionalities for user management, profile customization, and content sharing.
- It focuses heavily on OOP, SOLID principles, and design patterns.
- Sign Up: Users can sign up using a unique username, email address, password, and date of birth.
- Login: Users can log in using their email and password.
- Profile Settings: Users can update their username, email, password, date of birth, profile picture, cover photo, and bio.
- Profile Picture: Users can upload and change their profile picture.
- Cover Photo: Users can upload and change their cover photo.
- Bio: Users can write and update a short bio.
- Posts: Users can create posts with text and images.
- Post Display: Posts are displayed in a card format with the author's profile picture, username, and post content.
- Add Friends: Users can add other users as friends.
- Remove Friends: Users can remove friends from their friend list.
- Block Users: Users can block other users to prevent them from interacting.
- User: Represents a user in the application.
- Profile: Manages user profile information.
- Database: Handles user data storage and retrieval.
- CurrentUserProfile: Displays the current user's profile.
- UserProfile: Displays a user's profile.
- PostCard: Displays a post in a card format.
- Utilities: Contains utility methods for common tasks.
- users.json: Stores user data in JSON format.