WolfNotes API is a Spring Boot-based service designed for generating AI-powered academic notes. It leverages Spring AI for LLM integration and Groq for vector-based retrieval when augmenting generative outputs.
- Generate structured study notes from a given subject and syllabus
- Table of Contents, core topic sections, practice questions, and summary of notes
- Configurable maximum sections
- Watermarked Mardown output ready for PDF conversion using https://github.com/spawnia/md-to-pdf
- Java 17
- Spring Boot 3.x
- Spring AI
- Groq SDK
- Maven
- JDK 17 or higher installed
- Maven 3.8.x or higher
- Internet connection for API calls
- Groq API key
git clone https://github.com/HarshMN2345/WolfNotes-API.git
cd wolfprepCreate a .env or export in your shell:
export GROQ_API_KEY=your_groq_api_key_here
export SPRING_AI_MODEL=your_llm_model_identifierRun Maven install to build and run tests:
mvn clean installStart the Spring Boot application:
mvn spring-boot:runThe service will start on http://localhost:8080 by default.
-
URL:
/api/notes -
Method:
POST -
Request Body:
{ "subject": "Subject Name", "syllabus": "Topic1\nTopic2\nTopic3" }example
{ "subject": "Advanced Concepts in Data Analytics", "syllabus": "1. Vector Space: Definition, axioms, examples in data analysis\n2. Subspaces: Criteria, examples, null space and column space\n3. Linear Independence: Definition, checking independence, significance in data modeling\n4. Basis and Dimension: Basis of a vector space, computing dimension\n5. Eigenvalues and Eigenvectors: Definitions, geometric interpretation\n6. Properties and Applications: Diagonalization, spectral theorem, and relevance in PCA" } -
Response: markdown containing the formatted notes
- URL:
/actuator/health - Method:
GET - Response: Application health status
The following properties can be set in application.properties or via environment variables:
| Property | Description | Default |
|---|---|---|
server.port |
HTTP port for the application | 8080 |
groq.api.key |
API key for Groq | required |
spring.ai.model |
Identifier of the LLM in Spring AI | required |
notes.maxSections |
Maximum number of core topic sections | 10 |
Logs are output to the console. Adjust log level in application.properties:
logging.level.com.sotiras.wolfprep=DEBUGThis project uses Semantic Versioning:
- v1.0.0: Initial release with core note-generation features
Feel free to open issues or submit pull requests. Make sure to follow the existing code style and include tests for new functionality.
MIT License © 2025 Sotiras