WikiTales / Readme.md
rishipal's picture
Update Readme.md
c329686 verified
metadata
title: WikiTales
emoji: πŸ“š
colorFrom: indigo
colorTo: pink
sdk: streamlit
sdk_version: 1.35.0
app_file: app.py
pinned: false

πŸ“– WikiTales – Interactive Historical Storybooks

WikiTales is an open-source, story-driven web app that transforms raw historical data from Wikimedia projects into immersive, engaging storybook-style narratives. Built with Python and Streamlit, it’s designed to help learners explore the past like never before.


Team Members

  • Rishi Palavarapu
  • Harsha Ambati
  • Rishitha Reddy
  • Yaswanth Ambati

πŸš€ Overview

WikiTales bridges storytelling and research by compiling content from Wikimedia public APIs such as Wikipedia, Wikiquote, Wikidata, Wikisource, Wikibooks, and more. It generates narrative summaries, trivia facts, quotes, timelines, and glossary definitions based on user-entered topics.


πŸ” Key Features

  • 🧠 AI-generated Story Narratives based on historical events and figures
  • 🎭 Narrator Styles: Choose between historian, eyewitness, journalist, AI assistant, etc.
  • 🧾 Dynamic Timelines of important events
  • πŸ’¬ Quotes & Primary Sources from Wikiquote and Wikisource
  • 🧠 β€œDid You Know?” Facts from Wikidata
  • πŸ“š Wikibooks Sidebar for extended learning material
  • πŸ“Έ Image Carousel using Wikimedia Commons

πŸ› οΈ Built With


βš™οΈ How It Works

  1. User enters a topic (e.g. World War II).
  2. WikiTales fetches:
    • Summary from Wikipedia
    • Quotes from Wikiquote
    • Timeline from Wikidata
    • Definitions from Wiktionary
    • Images from Commons
    • Source documents from Wikisource
    • Related books from Wikibooks
  3. Story is narrated using the selected voice and formatted as a storybook.
  4. Additional enhancements include interactive glossary and image carousel.

πŸ”§ Setup Instructions

To get started with this project, follow these steps:

# Clone the repository
git clone https://code.swecha.org/soai2025/soai-hackathon/team-titans.git

# Navigate to the project folder
cd team-titans

# (Optional but recommended) Create a virtual environment
python3 -m venv wikitales_venv
source wikitales_venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run the app locally
streamlit run app.py

πŸš€ Deployment

This app is designed to be deployed on Hugging Face Spaces using the Streamlit template.


πŸ—‚οΈ Project Structure

WikiTales/
β”œβ”€β”€ app.py                      # Main Streamlit app
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ README.md                   # Project overview and setup
β”œβ”€β”€ story_engine/               # All logic modules for fetching and generating story content
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ wikipedia.py
β”‚   β”œβ”€β”€ wikiquote.py
β”‚   β”œβ”€β”€ wikisource.py
β”‚   β”œβ”€β”€ commons.py
β”‚   β”œβ”€β”€ wikidata.py
β”‚   β”œβ”€β”€ wikibooks.py
β”‚   β”œβ”€β”€ formatter.py
β”‚   └── story_builder.py        # Core function to build story from APIs

πŸ“ story_engine/ contains modular Python files to keep the logic clean and testable.