Production-ready backend built with Spring Boot featuring JWT authentication, Google OAuth2 login, MongoDB Atlas persistence, Redis caching, Kafka messaging, email notifications, and external Weather API integration.
- 🔐 JWT Authentication & Authorization
- 🌐 Google OAuth2 Login
- ☁️ MongoDB Atlas Database
- ⚡ Redis Caching Layer
- 📨 Kafka Producer & Consumer Integration
- 📧 Email Notification Service (SMTP)
- 🌦 Weather API Integration
- ⏰ Scheduled Background Jobs
- 📄 Swagger/OpenAPI Documentation
- Java 8+
- Spring Boot
- Spring Security
- MongoDB Atlas
- Redis
- Apache Kafka
- OAuth2 Client
- JWT
- Maven
src/main/java/net/areebamaar/journalApp
├── Config
├── Controller
├── Service
├── Repository
├── Entity
├── Filter
├── Scheduler
└── Utilis
This project uses environment variables for sensitive configuration.
Check .env.example for required variable names.
Required variables include:
MONGODB_URI GOOGLE_CLIENT_ID GOOGLE_CLIENT_SECRET REDIS_HOST REDIS_PORT REDIS_PASSWORD GMAIL_ID GMAIL_PASSCODE KAFKA_SERVER KAFKA_CONFIG CLIENT_ID WEATHER_API_KEY
- Clone the repository
git clone https://github.com/areebamaar/journal-app.git
-
Configure environment variables in IntelliJ Run Configuration or system environment.
-
Run the application
mvn spring-boot:run
Application will start on:
http://localhost:8080
Swagger UI:
http://localhost:8080/swagger-ui.html
The project is designed for deployment on a VPS using environment variables for secure configuration.
Areeb Amaar Backend Developer | Spring Boot | Java
GitHub: https://github.com/areebamaar