A simple implementation of a Twitter-like platform. This project was created as part of an Advanced Programming course and allows users to perform essential social media activities in an intuitive and lightweight way.
- Sign up, log in, and manage your account.
- View and edit your profile picture.
- View other users' profile pictures.
- Explore a timeline that displays tweets from users you follow.
- Tweet, retweet, reply, and quote other users' tweets.
- Attach photos to your tweets.
- Like and unlike tweets.
- Filter tweets by hashtags, user mentions, or keywords.
- Search for users.
- Search for specific hashtags.
- Follow, unfollow, and block users.
- Send and receive direct messages.
- Java
- JavaFX for UI design
- CSS for styling
- MySQL for database management
- Clone this repository to your local machine:
git clone https://github.com/Mehrnaz-Sahebi/twitter-simulation.git
-
Set up the MySQL database:
- Create a MySQL database for the project.
- Import any provided SQL scripts (if available) to create the necessary tables.
- Update the database connection information in the file located at
model/database/SQLConnection
(line 37). Replace the placeholders with your actual database credentials:
connection = DriverManager.getConnection("jdbc:mysql://<hostname>:<port>/<database_name>", "<username>", "<password>");
-
Open the project in your preferred Java IDE (e.g., IntelliJ IDEA or Eclipse).
-
Set up and run both the server and client:
- First, run the server file.
- Then, run the client file.
- Both must be running simultaneously for the application to work correctly.
- Launch the application.
- Sign up to create an account.
- Use the intuitive interface to:
- Post tweets and interact with others.
- Explore your timeline and filter tweets.
- Manage social interactions and direct messaging.
This project is licensed under the MIT License. See the LICENSE file for details.
- Mehrnaz Sahebi GitHub Profile
- Mahsa Nasehi GitHub Profile
This project was developed as part of my Advanced Programming course to demonstrate object-oriented programming, database integration, and UI design principles.