Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Passion Pulse API

A containerized Java 21 microservice that uses Google's Gemini AI to analyze text and score how "passionate" the user is about a topic. Built for the DEV.to Weekend Challenge: Passion Edition.

The DevOps Angle

As an IT Operations student pivoting to DevOps, I focused less on a fancy UI and more on the infrastructure:

  • Java 21 Records: For clean, immutable data transfer objects.
  • Spring Boot RestClient: For modern, fluent HTTP calls to the Gemini API.
  • Environment Variables: The API key is strictly injected via Docker (-e GEMINI_API_KEY=...), ensuring zero secrets are leaked in the source code.
  • Multi-Stage Docker Build: Minimizes the final image size by building with Maven, then copying only the .jar to a lightweight Alpine JRE image.
  • Jackson JSON Parsing: Used Spring's built-in ObjectMapper to safely parse the nested Gemini API response.

๐Ÿ› ๏ธ Tech Stack

  • Language: Java 21
  • Framework: Spring Boot 3.2
  • AI Model: Google Gemini 3.5 Flash (gemini-flash-latest)
  • Containerization: Docker
  • Build Tool: Maven

๐Ÿš€ How to Run

Prerequisites: Docker installed on your machine.

  1. Clone the repository:
    git clone https://github.com/OJCodeCanvas/passion-pulse-api.git
    cd passion-pulse-api
    
    

About

Containerized Java 21 & Spring Boot microservice using Google Gemini AI to analyze text. Built for the DEV.to Weekend Challenge.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages