Skip to content

About

A full-stack, event-driven personal journaling platform. Features AI-powered sentiment analysis (Groq Llama 3.1), secure hybrid auth (JWT/OAuth2), and asynchronous email reporting via Apache Kafka. Built with React 19 and Spring Boot 3.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

Repository files navigation

📔 Journal App – Full-Stack Monorepo

React Spring Boot MongoDB Apache Kafka TailwindCSS

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.


🌍 Live Environments

The application is fully deployed and accessible online:


📖 Documentation Directory

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:


🏗 High-Level Cloud Architecture

The platform operates on a decoupled, cloud-native architecture ensuring high performance and security:

  1. Client Layer: A React 19 SPA running on Vite, utilizing Tailwind CSS for a fully responsive UI, deployed globally via Vercel's edge network.
  2. Gateway & Security: REST APIs secured via Hybrid Authentication (Google OAuth2 & standard BCrypt/JWT).
  3. 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.
  4. AI & Event Streaming: Asynchronous processing using an Aiven Apache Kafka cluster to distribute LLM-generated (Llama 3.1 via Groq) weekly emotional synthesis reports.

🚀 Quick Start (Local Development)

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.

1. Start the Backend

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*

2. Start the Frontend

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*


🛠 Complete Tech Stack

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)


👤 Author

Rehan Naikwadi

GitHub: @rehann07


📄 License

This project is licensed under the MIT License.

See the LICENSE file for full details.

About

A full-stack, event-driven personal journaling platform. Features AI-powered sentiment analysis (Groq Llama 3.1), secure hybrid auth (JWT/OAuth2), and asynchronous email reporting via Apache Kafka. Built with React 19 and Spring Boot 3.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages