❗ 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 Configurationis done, download Rundeck - Follow the steps: Rundeck Windows Configuration
- Go to localhost:4440
- Login with
adminadmin(default) - Create
New Project - Click on
Action→Upload Definition - Choose
YAML formatand upload job from /rundeck
- temporary disable your
anti-virus - fill
spring.mail.username&spring.mail.passwordwith your Google App Passwords credentials
- fill
jwt.secret.keywith your secret key. You can visit https://www.allkeysgenerator.com
- Make sure you have
targetdirectory and.jarfile inside. - If you don't have
targetdirectory, 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 Brokerlocally - Create Database named
twittur - Run
mvn spring-boot:runor - Add VM options
--add-opens java.base/java.lang=ALL-UNNAMEDto IDE Run/Debug configuration for orika object mapper to work - APIs will be served at localhost:8080