Skip to content

A React + Java Spring Boot Blogging project, to demonstrate my skills in react and java springboot with passwordless authentication (Magic Link) and Supabase

Notifications You must be signed in to change notification settings

koustubh-lab/Logsy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Logsy

Logsy is a modern, full-stack blogging platform built with Java Spring Boot and React. It features magic link authentication, rich content creation, and smooth user experience powered by Supabase and Resend.


πŸš€ Features

  • ✍️ Clean and responsive blogging interface
  • πŸ” Passwordless magic link login via JWT
  • ☁️ Supabase Storage for images and media
  • πŸ“§ Transactional emails via Resend (login, activation)
  • 🧩 Modular backend structure with Spring Boot
  • πŸ‘€ User profiles with avatars, bios, and more

πŸ› οΈ Tech Stack

Layer Stack
Frontend React, Tailwind CSS, ShadCN UI
Backend Java Spring Boot (REST API)
Auth Magic Link with JWT
Database Supabase PostgreSQL
Storage Supabase Buckets
Emails Resend (Transactional API)

πŸ” Authentication Flow (Magic Link + JWT)

  1. User provides their email
  2. Backend generates a short-lived JWT token
  3. The token is embedded in a magic link and emailed via Resend
  4. When the user clicks the link, the frontend hits the backend endpoint with the token
  5. Spring Boot validates the JWT and authenticates the user

βœ… No Supabase Auth is used β€” the entire authentication logic is managed by Spring Boot and JWT.


πŸ“¦ Installation

β˜• Backend (Spring Boot)

git clone https://github.com/your-username/logsy-backend.git
cd logsy-backend

cp .env.example .env  # Create your environment file
./mvnw spring-boot:run

βœ… The backend serves all API routes, handles authentication, media uploads, and sends emails.


πŸ” Backend Environment Variables

Create a .env file in the root of the backend folder and define the following variables:

SUPABASE_PROJECT_URL=https://your-project.supabase.co
SUPABASE_DB_USERNAME=your_db_username
SUPABASE_DB_PASSWORD=your_db_password
SUPABASE_BUCKET_URL=https://your-project.supabase.co/storage/v1
RESEND_API_KEY=your-resend-api-key

πŸ’‘ These are consumed in application.properties or injected via @Value.


πŸ“ Folder Structure

β˜• Backend (logsy-backend/)

logsy-backend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/spring/blog_application/
β”‚   β”‚   β”‚   β”œβ”€β”€ aspects/
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/
β”‚   β”‚   β”‚   β”œβ”€β”€ dto/
β”‚   β”‚   β”‚   β”œβ”€β”€ model/
β”‚   β”‚   β”‚   β”œβ”€β”€ repository/
β”‚   β”‚   β”‚   β”œβ”€β”€ security/
β”‚   β”‚   β”‚   β”œβ”€β”€ service/
β”‚   β”‚   β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”‚   └── BlogApplication.java
β”‚   β”‚   └── resources/
β”‚   β”‚       β”œβ”€β”€ keys/
β”‚   β”‚       β”œβ”€β”€ static/
β”‚   β”‚       β”œβ”€β”€ templates/
β”‚   β”‚       └── application.properties
β”‚   └── test/
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ pom.xml
β”œβ”€β”€ .gitignore
└── mvnw / mvnw.cmd

πŸ’¬ Contact

Made with ❀️ by Koustubh Karande Reach out on LinkedIn


πŸ“„ License

This project is licensed under the MIT License – see LICENSE.

About

A React + Java Spring Boot Blogging project, to demonstrate my skills in react and java springboot with passwordless authentication (Magic Link) and Supabase

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published