- Notifications
You must be signed in to change notification settings - Fork128
🐦 Twitter Clone with Microservice Architecture using Java 17, Spring Boot, Spring Cloud, PostgreSQL, S3 bucket, JWT, TypeScript, React.js, Redux-Saga, Material-UI
License
NotificationsYou must be signed in to change notification settings
merikbest/twitter-spring-reactjs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Twitter clone developed with a microservice approach using the Spring Framework and React.js.
The project is always updated with new features.
See more demo screenshots below.
- Back-end: Java 17, Spring (Boot, Cloud, Data, Security), JPA / Hibernate, PostgreSQL, JUnit, Mockito
- Front-end: TypeScript, React.js, Redux-Saga, Material-UI, Jest, Enzyme
- Security: JWT
- AWS S3 bucket
- Docker
- 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
- User mentions
- Tweet thread
- Front-end refactoring
- Back-end refactoring
- Adaptive layout
- Install maven:link
- Install Java:link
- Install Postgresql:link
- Install Intellij IDEA Ultimate:link
- Install Docker and Docker Desktop
- Add Lombok plugin to the Intellij IDEA:link
- Make sure Java 17 is selected:link
- Build the project with Maven:link
- In the docker-compose filelink run 4 services:
postgres
,pgadmin
,zipkin
,rabbitmq
link - Openhttp://localhost:5050/browser/ and create DBs:
user
,tweet
,chat
,lists
,notification
,tag
,topic
- Sign up for a new AWS account:link
- Create a new AWS S3 bucket:link
- Change access from private to public in the AWS S3 bucket
- Add a public access policy to the AWS S3 bucket (!!!important!!! see:doc,github examle ormy example)
- Get AWS keys:link and add to the application.properties file:link
- In theimage-service.yml config file add bucket, access-key, secret-key properties
- Sign up for gmail
- Create google API keys:link
- Add google API key to thetweet-service.yml config file
- Add gmail account and password to theemail-service.yml config file
- Go tolink (important) and change to: “Allow less secure apps: ON”
- Install node.js and npm:link
- Open terminal in frontend directory and type: npm install (or yarn install)
- Run services in this order:
- eureka-server
- config-server
- api-gateway
- user-service
- and then all other services in any orderlink
- Open terminal in frontend directory and type: npm start or run viapackage.json
- Navigate tohttp://localhost:3000/home
Login:user2016@gmail.com
Password: qwerty123
About
🐦 Twitter Clone with Microservice Architecture using Java 17, Spring Boot, Spring Cloud, PostgreSQL, S3 bucket, JWT, TypeScript, React.js, Redux-Saga, Material-UI
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.