AI-powered notes application built with Spring Boot + PostgreSQL with a planned Android client.
NoteMind AI focuses on building a modern notes platform with AI-powered features, secure authentication, intelligent search, and scalable backend architecture.
- JWT based authentication
- Secure password encryption using BCrypt
- Stateless Spring Security architecture
- Multi-user support
- User-specific private notes
- Create notes
- Update notes
- Delete notes
- Add title and content
- Upload note images
- Store images using Cloudinary
NoteMind AI uses external AI services to generate summaries from long notes.
Powered by:
- Google AI API
- OpenRouter AI API
Notes support image attachments with cloud storage.
Flow:
Application
|
v
Cloudinary
|
v
Image URL
|
v
PostgreSQL
Features:
- Image upload
- Cloud storage
- URL persistence
- Media handling
Implemented using PostgreSQL Full Text Search.
Uses:
- tsvector
- tsquery
- GIN indexing
Search works across:
- Title
- Content
- AI generated summaries
Client
|
v
Spring Boot REST API
|
+---- Spring Security (JWT)
|
+---- AI Service
|
+---- Cloudinary Storage
|
+---- PostgreSQL Database
- Java 21
- Spring Boot
- Spring Security
- Spring Data JPA
- Hibernate
- PostgreSQL
- PostgreSQL Full Text Search
- Google AI API
- OpenRouter API
- Cloudinary
- JWT
- Gradle
- Kotlin
- Jetpack Compose
Before running the project, configure these environment variables.
DB_URL
DB_USERNAME
DB_PASSWORD
Example:
DB_URL=jdbc:postgresql://localhost:5432/notemind_ai
DB_USERNAME=postgres
DB_PASSWORD=your_password
JWT_SECRET_KEY
GOOGLE_API_KEY
OPENROUTER_API_KEY
CLOUD_NAME_CLOUDINARY
CLOUD_API_KEY_CLOUDINARY
CLOUD_API_SECRET_CLOUDINARY
Using Gradle:
./gradlew bootRunApplication starts at:
http://localhost:8080/api/v1
- Android application using Kotlin and Jetpack Compose
- AI chat with notes
- Voice notes
- Markdown editor
- Note sharing
- Real-time collaboration
- Redis caching
- Elasticsearch integration
Dhaliwal
CSE Student
⭐ Built with Java, Spring Boot, PostgreSQL & AI