Twitter clone developed using Spring Boot and React.js.
The project is always updated with new features.
See more demo screenshots below.
- 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
- 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.
- Advanced search
- Queries optimization
- Front-end testing
- Front-end refactoring
- Adaptive layout
- 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
Login: user2016@gmail.com
Password: qwerty