Skip to content

uva-linklab/linklabpublication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkLab Publication Project

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.


Table of Contents

  1. Features
  2. Project Structure
  3. Installation
  4. Usage
  5. Configuration
  6. Output Files
  7. Contributing
  8. License

Features

  • 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.

Project Structure

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

Installation

1. Clone the Repository

Clone this repository to your local machine:

git clone https://github.com/uva-linklab/linklabpublication.git
cd linklabpublication

2. Install Python Dependencies

Ensure you have Python 3.9+ installed. Then, install the required Python libraries:

pip install -r requirements.txt

3. Install Node.js Dependencies

Ensure Node.js 14+ is installed. Then, install the required Node.js libraries:

npm install

Usage

1. Run the Express Server

Start the Node.js server to serve the web application:

node server.js

The application will be available at:

http://localhost:3000

2. Run the BibTeX Generator

Manually generate BibTeX files and publication data:

python3 src/scripts/generate_bibtex.py

3. Run the Scheduler

Automate BibTeX generation every two weeks:

python3 src/scripts/scheduler.py

This script ensures the BibTeX generation script runs periodically.


Configuration

1. Authors Configuration

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.


Output Files

  1. Publications.bib:

    • The generated BibTeX file containing all publications.
    • Location: src/static/bib/Publications.bib
  2. PublicationStatistics.json:

    • Statistics on publications per author, year, and type.
    • Location: src/logs/PublicationStatistics.json
  3. SkippedPublications.log:

    • Log of publications skipped due to invalid data or unsupported types.
    • Location: src/logs/SkippedPublications.log

Contributing

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Submit a pull request with detailed explanations of your changes.

License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages