twitter-spring-reactjs
twitter-spring-reactjs copied to clipboard
:bird: Twitter Clone with Microservice Architecture using Java 17, Spring Boot, Spring Cloud, PostgreSQL, S3 bucket, JWT, TypeScript, React.js, Redux-Saga, Material-UI
Twitter clone
Twitter clone developed using Spring Boot and React.js. The project is always updated with new features. See more demo screenshots below.

Used Technologies:
- Back-end: Java, Spring (Boot, Data, Security), JPA / Hibernate, PostgreSQL, JUnit, Mockito
- Front-end: TypeScript, React.js, Redux-Saga, Material-UI
- Security: JWT
- AWS S3 bucket
Features
- Authentication with JWT and Email validation. Password change.
- Users can Add tweets, Like, Retweet, Reply, Quote tweets, Schedule tweets.
- Users can Delete tweets, Send tweet via Direct Message, Add tweet to Bookmarks.
- Users can Create Lists, Edit Lists, Add other users to Lists, Follow List, Pin Lists.
- Users get notifications when someone subscribed, retweet or liked tweet.
- Users can add Images to tweet, Create Poll and vote, Post tweets with link preview, Posts tweets with YouTube video link.
- Websocket online chats.
- Private user profile and lists.
- Account Settings.
- Users can subscribe to each other.
- User can edit profile.
- User can block and mute other users.
- Users can customize site color scheme and color background.
- Users can search tweets by hashtags and search other users and users tweets.
- All images downloads on Amazon S3 bucket.
Next Updates
- Advanced search
- Queries optimization
- Front-end testing
- Front-end refactoring
- Adaptive layout
Installation
- Install maven: link
- Install Java: link
- Install Postgresql: link
- Install Intellij IDEA Ultimate: link
- Open pgAdmin and create a new DB (name: twitter and twittertest) in Postgresql: link
- Add Lombok plugin to the Intellij IDEA: link
- Configure project like: link
- Add Postgresql properties to the application.properties file: link
- Register new AWS account: link
- Create new S3 bucket: link
- Change access from private to public in S3 bucket
- Add public access policy to S3 bucket (!!!important!!! see: doc, github examle or my example)
- Get AWS keys: link and add to the application.properties file: link
- Register in gmail
- Create google API keys: link
- Add google API key to the application.properties file: link
- Add gmail account and password to the application.properties file: link
- Go to link (important) and change to: “Allow less secure apps: ON”
- Install node.js and npm: link
- Open terminal in client directory and type: npm install (or yarn install)
- Now you can run TwitterApplication (port 8080) and open terminal in client directory and type: npm start
- Navigate to http://localhost:3000/home
To enter the application you can register or login:
Login: [email protected]
Password: qwerty123
Screenshots
Add tweet

Add Poll

Reply tweet

Tweet image modal

Notifications

Full Notifications

Search

Search Videos

Full tweet

Liked by Modal window

Following and Followers

Trends

Bookmarks

Chat

Lists

Full List

Suggested Lists

Settings

Customization

Dark theme profile
