University of Pisa
- Course: Large Scale and Multi-Structured Data Bases
- Academic Year: 2025-2026
- Instructors: Pietro Ducange, Alessio Schiavo
- Team: Daniele Congiusti, Andrea Covelli, Luca Giannini
NexusScholar is a platform designed to help researchers, students, and R&D departments navigate the vast landscape of scientific literature. While platforms like Google Scholar help you find papers, NexusScholar helps you understand the connections. It reveals the most influential authors in a specific field, tracks how scientific ideas evolve through citation networks, and identifies hidden collaboration pathways between institutions.
The system implements a Polyglot Persistence architecture, utilizing the right database for the right data structure.
- MongoDB (Document DB): Stores rich content (papers, author profiles). Configured as a replica set for high availability and read scaling.
- Neo4j (Graph DB): Manages complex relationships (citations, co-authorship) for network analysis.
- Spring Boot Backend: Provides business logic, data orchestration, and RESTful APIs.
- Backend: Java 25 (LTS), Spring Boot 3.x
- Databases: MongoDB, Neo4j
- Infrastructure: Docker, Docker Compose
- CI/CD: GitHub Actions, SonarCloud, Codecov, JUnit, Testcontainers
The project is containerized for easy setup.
- Docker and Docker Compose installed.
- Clone the repository:
git clone [https://github.com/AndreaCovelli/NexusScholar.git](https://github.com/AndreaCovelli/NexusScholar.git) cd NexusScholar - Configure Environment Variables:
Create a
.envfile in the root directory by copying.env.example.cp .env.example .env
- Start the Services:
docker compose --env-file .env -f deployment/docker-compose.local.yml up -d
- Initialize the MongoDB Replica Set:
(Required only on the first run). Run the initialization script to configure the MongoDB containers into a replica set.
bash deployment/scripts/init-mongo-replica.sh
Once the application is running, the RESTful API documentation is available via Swagger UI:
http://localhost:8080/swagger-ui.html
A Postman collection is available at: experiments/NexusScholar.postman_collection.json.
The complete project documentation is located in the /docs folder:
