❗ Twittur in Microservices here
- Project
- Register, Login, Logout, Refresh Token
- Get, Update
Account
- Follow, Unfollow
Account
- Create, Get, Update, Delete
Tweet
- Get, Send
Direct Message
- Get
Notification
- Send
Email
- Tech
- Log
- Caching
- JWT Auth
- Dockerized
- Data Streaming
- Cron Job: /rundeck
- API spec: /api-spec
- Database Migration: /db/migration
- Exception Handling: ExceptionController.java
- Test: /unit-test, /integration-test
- Java version: 17 (JAVA_HOME)
- Spring Boot version: 3.0.4
- Databases: PostgreSQL, Redis
- Message Broker: Apache Kafka
- Email Service: Gmail SMTP
- Cron: Rundeck
- Container: Docker
- IDE: Intellij IDEA Community Edition
- Build tool: Maven 3.6.3
- Update both recipients for notification with your email
- After
Email Configuration
is done, download Rundeck - Follow the steps: Rundeck Windows Configuration
- Go to localhost:4440
- Login with
admin
admin
(default) - Create
New Project
- Click on
Action
→Upload Definition
- Choose
YAML format
and upload job from /rundeck
- temporary disable your
anti-virus
- fill
spring.mail.username
&spring.mail.password
with your Google App Passwords credentials
- fill
jwt.secret.key
with your secret key. You can visit https://www.allkeysgenerator.com
- Make sure you have
target
directory and.jar
file inside. - If you don't have
target
directory, you can runmvn clean install -DskipTests
- Update docker-compose environment at docker-compose.yaml
- Run
docker compose up
- APIs will be served at localhost:8080
- Run
Databases
&Message Broker
locally - Create Database named
twittur
- Run
mvn spring-boot:run
or - Add VM options
--add-opens java.base/java.lang=ALL-UNNAMED
to IDE Run/Debug configuration for orika object mapper to work - APIs will be served at localhost:8080