Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IAC Automated Impact Story Generator

Cloud Counselage · Global Professional Internship (GPI) · Generative AI Domain

An AI-powered web application that automatically generates personalized impact stories for Industry Academia Community (IAC) participants. The system ingests participant data from multiple sources, uses Generative AI (Gemini 2.5 Flash) to craft narratives in three formats, routes stories through an intern self-review, and then submits them to a separate IAC Member Approval Portal before final publication.


🌟 Key Features

  1. Multi-Source Data Ingestion — Collects participant data from LinkedIn posts (manual paste), IAC Internship reviews, and IAC Training & Certification reviews
  2. AI-Powered Story Generation — Uses Google Gemini 2.5 Flash to generate stories in 3 formats: Social Media Snippet (50w), Blog Post (200w), Partner Case Study (500w)
  3. Intern Self-Review — Built-in 8-point checklist for interns to verify accuracy before submission
  4. IAC Member Approval Portal — Separate admin interface (/admin) where IAC team members review, edit, approve or reject submitted stories
  5. Two-Stage Workflow — Clear separation between intern submission and IAC final approval
  6. Searchable Repository — Approved stories stored in stories_db.json with search by name, skill, region
  7. Ethical AI Compliance — Consent verification, fact-grounding, no PII exposure, full audit trail

🔄 Story Workflow

INTERN SIDE                          IAC MEMBER SIDE
─────────────────────────────────    ────────────────────────────────
1. Enter participant data            
2. Verify consent checkbox           
3. Click "Generate Impact Story"     
4. AI generates 3 story formats      
5. Intern reviews & edits story      
6. Completes self-review checklist   
7. Clicks "Submit to IAC Approval"   
        │                            
        └──── Status: pending_iac ──► 8. IAC Member opens /admin portal
                                      9. Reads story + source data
                                     10. Completes IAC checklist
                                     11. Approves OR Rejects with reason
                                              │
              ◄── Status: approved ──────────┘
12. Story appears in Repository
    as "✅ Approved by IAC"

📁 File & Folder Structure

iac-story-generator/
│
├── server.py                    ← FastAPI backend server & all API endpoints
├── index.html                   ← Intern-facing story generation interface
├── admin.html                   ← IAC Member approval portal (separate page)
├── requirements.txt             ← Python dependencies
├── stories_db.json              ← Auto-created local database for all stories
│
├── sample_data/
│   └── participants.json        ← Mock participant profiles for testing
│
├── docs/
│   ├── project_plan.md          ← Full project plan and 3-4 hour build timeline
│   ├── ethical_framework.md     ← Safety, consent, and ethical AI guidelines
│   └── data_pipeline.md         ← Data flow architecture and processing steps
│
├── screenshots/
│   ├── 01_generate_story.png    ← Story generation interface
│   ├── 02_review_checklist.png  ← Intern review checklist
│   ├── 03_submit_to_iac.png     ← Submission confirmation
│   ├── 04_admin_portal.png      ← IAC admin approval portal
│   ├── 05_iac_approval.png      ← Approval with checklist
│   └── 06_repository.png        ← Approved stories repository
│
└── README.md                    ← This documentation file

🛠 Tech Stack

Layer Technology
Frontend (Intern) HTML5, CSS3 (Glassmorphism), Vanilla JavaScript
Frontend (Admin) HTML5, CSS3 (Dark theme), Vanilla JavaScript
Backend Python 3.8+, FastAPI, Uvicorn
AI Model Google Gemini 2.5 Flash (via google-genai SDK)
Web Scraping Playwright (Headless Chromium), BeautifulSoup4
Storage Local JSON file (stories_db.json)
Deployment Local server at http://127.0.0.1:8000

📥 Data Sources

The system collects participant data from 3 official sources:

# Source URL
1 LinkedIn Posts Manual copy-paste from participant's LinkedIn profile
2 IAC Internship Reviews https://cloudcounselage.graphy.com/courses/Internships
3 IAC Training & Certification Reviews https://cloudcounselage.graphy.com/courses/Industry-Training--Certifications-63ea3b50e4b02627dce7fa3b-63ea3b50e4b02627dce7fa3b

Note on LinkedIn: Due to LinkedIn's authentication requirements and terms of service, LinkedIn posts are collected via manual copy-paste by the content team. The participant or intern visits the LinkedIn profile, copies the post text, and pastes it into the form. This is also the most ethical approach as the participant themselves controls what is shared.


🚀 Running the Project

Prerequisites

  • Python 3.8 or higher
  • Google Chrome browser

Step 1 — Install Dependencies

pip install -r requirements.txt

Step 2 — Install Playwright Browser

playwright install chromium

Step 3 — Configure Gemini API Key

Option A — Environment Variable:

# Windows PowerShell
$env:GEMINI_API_KEY="your_api_key_here"

# macOS / Linux
export GEMINI_API_KEY="your_api_key_here"

Option B — In Browser: Click the 🔑 Configure API Key button in the app header.

If no key is set, the app falls back to a local template generator for offline demonstrations.

Step 4 — Launch the Server

python server.py

Step 5 — Open the App

Interface URL Who Uses It
Story Generator http://127.0.0.1:8000 Interns
IAC Admin Portal http://127.0.0.1:8000/admin IAC Team Members

📋 Step-by-Step Usage Guide

For Interns (Story Generator)

  1. Open http://127.0.0.1:8000
  2. Click Load Sample Participant to auto-fill test data
  3. Confirm the Ethical Consent Checkbox
  4. Click Pull Content next to the LinkedIn URL field to fetch post text
  5. Click Generate Impact Story — 3 formats appear instantly
  6. Review and edit the stories in the output panel
  7. Complete the Self-Review Checklist (8 items)
  8. Click 🚀 Submit to IAC for Approval
  9. Track story status in the Repository tab

For IAC Members (Admin Portal)

  1. Open http://127.0.0.1:8000/admin
  2. Enter your name in the Reviewer Name field (sidebar)
  3. Stories submitted by interns appear under ⏳ Pending Approval
  4. Click any story card to expand it
  5. Read the full story + source data used
  6. Edit the story text if minor corrections are needed
  7. Complete all 8 items in the IAC Approval Checklist
  8. Add notes/feedback in the Reviewer Notes field
  9. Click ✅ Approve for Publication OR ❌ Reject & Send Back
  10. Approved stories move to the repository; rejected stories return to intern with feedback

🔌 API Endpoints

Method Endpoint Description
GET / Serve intern story generator
GET /admin Serve IAC admin approval portal
POST /api/generate Generate stories via Gemini AI
POST /api/stories Save story to database
GET /api/stories Get all stories (with optional status filter)
GET /api/pending-approval Get stories with status pending_iac
GET /api/approved-stories Get all approved stories
POST /api/iac-decision IAC member approves or rejects a story
GET /api/admin-stats Dashboard statistics for admin portal
POST /api/scrape-linkedin Playwright LinkedIn post scraper

🛡 Ethical AI Policy

This application follows Cloud Counselage's ethical directives:

  • Consent First — Digital consent verification built into the ingestion form. No story is generated without confirming participant consent.
  • Fact Grounding — AI prompts explicitly instruct the model to use ONLY the provided participant data. No speculation or fabrication.
  • Two-Stage Human Review — Every story passes through intern self-review AND IAC member approval before publication.
  • Privacy Protection — No private contact information (phone/email) included in stories. Location restricted to city/state level.
  • Transparency — All published stories are labeled "Generated with AI assistance, reviewed and approved by IAC team."
  • Audit Trail — Every approval and rejection is logged with the reviewer's name and timestamp in stories_db.json.
  • Right to Withdraw — Participants can request story deletion at any time; removed within 48 hours.

📦 Deliverables

# Deliverable Status
1 Working web application (index.html + server.py) ✅ Complete
2 Separate IAC Admin Approval Portal (admin.html) ✅ Complete
3 Multi-source data ingestion (LinkedIn + 2 IAC pages) ✅ Complete
4 AI story generation — 3 formats (50w / 200w / 500w) ✅ Complete
5 Intern self-review checklist ✅ Complete
6 IAC Member approval workflow ✅ Complete
7 Searchable story repository ✅ Complete
8 Ethical AI framework & consent system ✅ Complete
9 Local JSON database with CRUD operations ✅ Complete
10 Project documentation (this README) ✅ Complete
11 Self-explanation demo video 📸 Add your video
12 Screenshots of all major features 📸 Add screenshots

🎬 Demo Video

Add your self-explanation video link here.

The demo video covers:

  • Overview of the problem statement and solution
  • Live demo of story generation workflow (intern side)
  • Live demo of IAC admin approval portal
  • Explanation of ethical AI framework
  • Data pipeline walkthrough

👤 Author

Dhairya Jesani Universal AI University Cloud Counselage Global Professional Internship (GPI) 2026 Domain: Generative AI


Built with Google Gemini 2.5 Flash · FastAPI · Playwright · Cloud Counselage IAC Vision 2030

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages