Project Info
This project did not submit a demo video on Devpost.
Inspiration
We believe that great work is accomplished when great talent unites. This was our attempt at mapping the academic landscape to hopefully encourage more collaboration within academia. Heavily inspired by Bell Labs. What you learned Learned how to work with the unpkg open source 3d graph visualizer and edit features such as a lighting up specific nodes or connections. Also learned how to build a great dataset from scratch scrapping directly from Google Scholar. Challenges A large challenge was pulling the whole project together, getting our vectordb results to light up related nodes. Another challenge was the slow speed of scrapping Google Scholar IDs, we spent at least 4 hours running scripts just to collect data.
Author-Co-Author Network Navigator
This project provides a web-based interface to explore a network of academic authors and their co-authors. It features a semantic search engine to find authors based on their research abstracts and a 3D force-directed graph to visualize the co-authorship network.
Features
- Semantic Search: Find authors based on natural language queries related to their research.
- AI-Powered Explanations: Get AI-generated explanations of why an author is a good match for your search query.
- 3D Network Visualization: Explore the co-authorship network in an interactive 3D graph.
- Flask-Based API: A simple and extensible API for search and data retrieval.
Prerequisites
Before you begin, ensure you have the following installed:
- Python 3.7+
- pip (Python package installer)
Setup
-
Clone the repository:
git clone <repository-url> cd <repository-folder> -
Install dependencies:
pip install -r requirements.txt -
Configure API Key:
- Rename the
config.env.examplefile toconfig.env. - Open
config.envand add your Google Gemini API key:GOOGLE_API_KEY=your_google_api_key
- Rename the
Data Preparation
The search engine and graph visualization rely on pre-processed data files.
-
Input Data: The primary data source is a JSON file containing author information, including abstracts and co-author relationships. The project expects this file at
nicolasdata/author_abstracts_5.json. -
Generate Vector Database: Run the
embedding_database.pyscript to create the vector database from your input data. This will generate thestatic/vectorbig.jsonfile by default.python embedding_database.py load nicolasdata/author_abstracts_5.jsonYou can specify a different path for the database:
python embedding_database.py --db /path/to/your/vector_database.json load nicolasdata/author_abstracts_5.json -
Generate Force Graph Data: Run the
convert_author_abstracts_4_to_graph.pyscript to create the data for the 3D visualization. This will generate thestatic/forcegraph_data_3.jsonfile. Provide the input and output file paths as arguments.python convert_author_abstracts_4_to_graph.py nicolasdata/author_abstracts_5.json static/forcegraph_data_3.json
Running the Application
Once the data preparation is complete, you can start the web server:
python search_api.py
By default, the server runs on 0.0.0.0:5000 and uses the vector database at static/vectorbig.json. You can change the host, port, and database path using command-line arguments:
python search_api.py --host 127.0.0.1 --port 8080 --db /path/to/your/vector_database.json
The application will be available at http://<host>:<port>.
- The 3D graph visualization will be at the root URL:
http://<host>:<port>/ - The search API is available at the
/searchendpoint.
API Endpoints
/search
- Method:
POST - Description: Performs a semantic search for authors based on a query.
- Body:
{ "query": "your search query here" } - Response: A JSON object with a list of matching authors.
/explain_match
- Method:
POST - Description: Generates an AI-powered explanation for why an author matches a search query.
- Body:
{ "query": "your search query here", "author_id": "author_id_from_search_results" } - Response: A JSON object with the explanation text.
Analysis
View
Metric
- 2
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- FlaskIn code
- HTMLIn code
- PythonIn code
- Google GeminiClaimed
3 of 4 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
281 KB
Source files
15
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
berkleyaihackathon2025DANI/working
82 files · 50.7 MB · @ 82915a1
Structure
Interface
4 files · 5%Screens, components and styles rendered to the user.
Application logic
15 files · 18%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- HTML81%
- Python17%
- Markdown1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 10- beautifulsoup4
- fake-useragent
- flask
- flask-cors
- google-generativeai
- numpy
- python-dotenv
- requests
- selenium
- undetected-chromedriver
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.