A web-based application to manage and display academic publications dynamically. This project includes a periodic scheduler, a BibTeX generator, a Node.js Express server for serving the frontend, and configurations for managing authors and publications.
- Generate BibTeX files from ORCID API using
generate_bibtex.py
. - Periodic automation of the BibTeX generation with
scheduler.py
. - Serve a web interface using a Node.js Express server.
- Manage authors dynamically via
authors.json
. - Output publication files in BibTeX (
Publications.bib
), JSON, and logs.
LINKLABPUBLICATION/
├── src/
│ ├── config/
│ │ └── authors.json # Config file for authors
│ ├── scripts/
│ │ ├── generate_bibtex.py # Script to generate BibTeX
│ │ └── scheduler.py # Scheduler for periodic BibTeX generation
│ ├── static/
│ │ ├── bib/
│ │ │ └── Publications.bib # BibTeX source file
│ │ ├── css/
│ │ │ └── styles.css # Frontend CSS
│ │ ├── js/
│ │ │ └── index.js # Frontend JavaScript
│ ├── templates/
│ │ └── index.html # Main HTML template
├── server.js # Node.js Express server
├── requirements.txt # Python dependencies
├── package.json # Node.js dependencies
├── .gitignore # Ignored files for version control
└── README.md # Project documentation
Clone this repository to your local machine:
git clone https://github.com/uva-linklab/linklabpublication.git
cd linklabpublication
Ensure you have Python 3.9+ installed. Then, install the required Python libraries:
pip install -r requirements.txt
Ensure Node.js 14+ is installed. Then, install the required Node.js libraries:
npm install
Start the Node.js server to serve the web application:
node server.js
The application will be available at:
http://localhost:3000
Manually generate BibTeX files and publication data:
python3 src/scripts/generate_bibtex.py
Automate BibTeX generation every two weeks:
python3 src/scripts/scheduler.py
This script ensures the BibTeX generation script runs periodically.
The src/config/authors.json
file contains a mapping of authors and their ORCID IDs:
{
"John Doe": "0000-0002-1825-0097",
"Jane Smith": "0000-0003-4825-6789"
}
Modify this file to add or update authors.
-
Publications.bib
:- The generated BibTeX file containing all publications.
- Location:
src/static/bib/Publications.bib
-
PublicationStatistics.json
:- Statistics on publications per author, year, and type.
- Location:
src/logs/PublicationStatistics.json
-
SkippedPublications.log
:- Log of publications skipped due to invalid data or unsupported types.
- Location:
src/logs/SkippedPublications.log
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with detailed explanations of your changes.