A sophisticated, AI-powered academic portfolio website featuring automated data collection, intelligent content generation, and modern web design. This Jekyll-based site showcases research publications, web mentions, teaching activities, and curated reading lists with real-time updates.
š Live Site: fabiogiglietto.github.io
Clone the repository
git clone https://github.com/fabiogiglietto/fabiogiglietto.github.io.git
cd fabiogiglietto.github.io
Install dependencies
npm install
bundle install
Configure environment variables
cp .env.example .env
# Edit .env with your API keys (see API Keys section)
Collect initial data
npm run collect
Start development server
npm run serve
# or
bundle exec jekyll serve
Visit the site
Service | Purpose | Frequency |
---|---|---|
OpenAI | Biography generation, web mentions | Weekly/Daily |
Scopus | Academic publication data | Daily |
Web of Science | Publication metrics | Daily |
Semantic Scholar | Citation data | Daily |
Professional updates | Daily | |
Mastodon | Social media content | Daily |
Create a .env
file in the project root:
# Required for AI features
OPENAI_API_KEY=sk-proj-...
# Publication APIs
SCOPUS_API_KEY=your-scopus-key
WOS_API_KEY=your-wos-key
S2_API_KEY=your-semantic-scholar-key
# Social Media APIs (optional)
LINKEDIN_ACCESS_TOKEN=your-linkedin-token
LINKEDIN_PERSON_ID=your-person-id
MASTODON_ACCESS_TOKEN=your-mastodon-token
Add these secrets to your repository settings:
OPENAI_API_KEY
SCOPUS_API_KEY
WOS_API_KEY
S2_API_KEY
LINKEDIN_ACCESS_TOKEN
LINKEDIN_PERSON_ID
MASTODON_ACCESS_TOKEN
All workflows can be triggered manually via GitHub Actions interface for immediate updates.
# Data Collection
npm run collect # Full data collection
npm run generate-about # AI biography generation
npm run generate-teaching # Teaching data generation
npm run generate-social-insights # Social media analysis
# Development
npm run serve # Start Jekyll development server
npm run build # Build static site
# Jekyll Commands
bundle exec jekyll serve # Alternative development server
bundle exec jekyll build # Alternative build command
fabiogiglietto.github.io/
āāā _includes/ # Jekyll includes
ā āāā generated-about.html # AI-generated biography
ā āāā web-mentions.html # Web mentions section
ā āāā toread-papers.html # Reading list carousel
ā āāā ...
āāā _layouts/ # Jekyll layouts
āāā _data/ # Jekyll data files
āāā assets/ # CSS, JS, images
ā āāā css/main.css # Main stylesheet
ā āāā js/main.js # Site JavaScript
āāā scripts/ # Data collection & generation
ā āāā collectors/ # API data collectors
ā āāā generators/ # Content generators
ā āāā collect-all.js # Main collection script
āāā public/data/ # Generated data files
āāā .github/workflows/ # GitHub Actions
āāā ...
This is a personal academic website, but contributions for improvements are welcome:
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Fabio Giglietto
š¤ This website showcases the intersection of academic research and modern web technology, featuring automated content generation and intelligent data aggregation. Built with transparency and open-source principles.