This app is part of a larger project called Noësis (more information coming soon). It aims (among other goals) to provide effective tools for researchers and students.
- Academic citations extraction
From a PDF, you can export (PDF, Word or txt handled) all the citations in the original document (traditional citations between quotation marks, harvard citations, and block citations). The process relies on a precise analysis of characters — including Unicode symbols, note numbers, and their coordinates — to reconstruct citations and their associated footnotes.
You can find the citation-extractor as an individual tool here - with also more informations.
- Annotations extraction
From a PDF, you can export all the annotations added (PDF, Word and txt export).
You can find it as an individual tool here.
- A basic authentication service
As it is still a demo, registration is disabled. A basic demo user is provided to try the main functionalities.
- Java 17
- Spring Boot 3.5
- JWT Authentication (access token only in demo mode -> refresh token planned in prod)
- Bucket4j for rate limiting
- Maven
- H2 (demo) -> PostgreSQL (prod)
- JWT Authentication with Authorization: Bearer token
- Rate limiting with Bucket4j
- General: 100 requests / 15 min
- Auth : 5 requests / 1 min
- Critical (PDF extraction): stricter limits - 3 requests / min
- Custom middlewares using Spring Interceptors
- Custom error handling
- Password hashing with Argon2 verified
- Jwt Service tested
- Authenticated endpoints tested with MockMvc
- Extraction endpoints tested: valid ZIP response with dummy files
- Rate limits tested
Feature | Path | Description |
---|---|---|
Register | GET /auth/register |
Returns new user non sensitive info - disabled in demo mode |
Login | POST /auth/login |
Returns JWT |
User Info | GET /user/me |
Requires JWT |
Update User | PUT /user/update |
Auth required |
Citation Extraction | POST /extract/citations |
File + formats, returns ZIP |
Annotation Extraction | POST /extract/annotations |
File + formats, returns ZIP |