A modern, intelligent personal journaling platform. > This repository contains the complete full-stack codebase, featuring a lightning-fast React 19 / Vite UI and a scalable, event-driven Spring Boot backend powered by Groq AI and Apache Kafka.
The application is fully deployed and accessible online:
- 🚀 Frontend (Vercel): https://journal-app-ten-gilt.vercel.app
- ⚙️ Backend API (Render - Swagger UI): https://journal-app-api-8pi1.onrender.com/journal/swagger-ui/index.html
This project is structured as a monorepo. Detailed setup instructions, environment configurations, and deep dives into the architecture can be found in their respective directories:
- 🎨 Frontend Documentation (
/journal-app-frontend)- Covers React context, Vite setup, Tailwind v4 styling, and Axios interceptors.
- ⚙️ Backend Documentation (
/journal-app-backend)- Covers Spring Boot architecture, MongoDB transactions, Spring AI / Groq integration, Dockerization, and Kafka event streaming.
The platform operates on a decoupled, cloud-native architecture ensuring high performance and security:
- Client Layer: A React 19 SPA running on Vite, utilizing Tailwind CSS for a fully responsive UI, deployed globally via Vercel's edge network.
- Gateway & Security: REST APIs secured via Hybrid Authentication (Google OAuth2 & standard BCrypt/JWT).
- Core Services: A Dockerized Spring Boot 3.x backend hosted on Render, handling business logic, user management, and persistence to a managed MongoDB Atlas cluster.
- AI & Event Streaming: Asynchronous processing using an Aiven Apache Kafka cluster to distribute LLM-generated (Llama 3.1 via Groq) weekly emotional synthesis reports.
To run the full stack locally, you will need two terminal windows. Ensure you have Java 21, Node.js (v18+), MongoDB, and Kafka installed and running.
Navigate to the backend directory, configure your .env variables (as specified in the backend README), and run the Spring Boot server:
cd journal-app-backend
./mvnw spring-boot:run*The API will start on http://localhost:8080/journal*
Open a new terminal, navigate to the frontend directory, install dependencies, and start the Vite development server:
cd journal-app-frontend
npm install
npm run dev*The UI will be accessible at http://localhost:5173*
Frontend: React 19, Vite, Tailwind CSS v4, React Router v7, Axios
Backend: Java 21, Spring Boot 3.3.x, Spring Security, Spring AI, Docker
Database: MongoDB Atlas (Cloud NoSQL with Transaction Management)
Event Streaming: Aiven Apache Kafka (SASL_SSL / SCRAM-SHA-256)
Artificial Intelligence: Groq API (Llama 3.1)
Authentication: JWT (JSON Web Tokens), Google OAuth2
Cloud Hosting: Vercel (Frontend), Render (Backend)
Rehan Naikwadi
GitHub: @rehann07
This project is licensed under the MIT License.
See the LICENSE file for full details.