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.
- Multi-Source Data Ingestion — Collects participant data from LinkedIn posts (manual paste), IAC Internship reviews, and IAC Training & Certification reviews
- 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)
- Intern Self-Review — Built-in 8-point checklist for interns to verify accuracy before submission
- IAC Member Approval Portal — Separate admin interface (
/admin) where IAC team members review, edit, approve or reject submitted stories - Two-Stage Workflow — Clear separation between intern submission and IAC final approval
- Searchable Repository — Approved stories stored in
stories_db.jsonwith search by name, skill, region - Ethical AI Compliance — Consent verification, fact-grounding, no PII exposure, full audit trail
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"
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
| 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 |
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.
- Python 3.8 or higher
- Google Chrome browser
pip install -r requirements.txtplaywright install chromiumOption 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.
python server.py| 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 |
- Open
http://127.0.0.1:8000 - Click Load Sample Participant to auto-fill test data
- Confirm the Ethical Consent Checkbox
- Click Pull Content next to the LinkedIn URL field to fetch post text
- Click Generate Impact Story — 3 formats appear instantly
- Review and edit the stories in the output panel
- Complete the Self-Review Checklist (8 items)
- Click 🚀 Submit to IAC for Approval
- Track story status in the Repository tab
- Open
http://127.0.0.1:8000/admin - Enter your name in the Reviewer Name field (sidebar)
- Stories submitted by interns appear under ⏳ Pending Approval
- Click any story card to expand it
- Read the full story + source data used
- Edit the story text if minor corrections are needed
- Complete all 8 items in the IAC Approval Checklist
- Add notes/feedback in the Reviewer Notes field
- Click ✅ Approve for Publication OR ❌ Reject & Send Back
- Approved stories move to the repository; rejected stories return to intern with feedback
| 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 |
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.
| # | 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 |
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
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