See history the way they did — not just the way you were taught.
Every historical event has more than one side. HistoriLens uses AI to surface perspectives from different countries, religions, schools of thought, and cultures — all at once, all in one place.
demo.mp4
demo-credentials: user-id: mandapowar9@gmail.com password: harshw.kp@gmail.com
You pick a historical event — say, The French Revolution — and instead of reading one textbook version, you get 3–8 perspectives generated by AI. British Empire's take. The Church's view. A Marxist reading. An Algerian perspective.
Then you can dig deeper: bookmark the ones that surprise you, ask follow-up questions in a chat, or share a card with a friend.
| Layer | What |
|---|---|
| Frontend | Flutter (web + iOS + Android) |
| Auth + DB | Supabase (Auth, Postgres, RLS) |
| AI | Groq — LLaMA 3.3 70B + DeepSeek R1 70B |
| Hosting | Vercel |
| Icons | Phosphor Icons |
- 🌍 Multi-perspective AI — Country, Religion, School of Thought, Cultural lenses
- 💬 Deep Dive Chat — Ask follow-up questions about any perspective (context-aware)
- 🔖 Bookmarks — Save perspectives you want to revisit, synced via Supabase
- 🕐 History Feed — See what you've explored in the last 7 days
- 🔍 AI Search — Type anything, get AI-suggested historical events instantly
- 📄 Event Detail — AI-generated overview, key players, significance, and fast facts per event
- 🖼️ Share Cards — Export a perspective as an image and share it
- 🌙 Dark Mode — Persisted across restarts
- 🛫 Onboarding — Smooth 3-slide intro for new users
- 💰 Pricing tiers — Explorer (Free) / Historian / Scholar — pricing screen ready for payment integration
# 1. Clone
git clone https://github.com/harshwardhan-kp/HistoriLens.git
cd HistoriLens
# 2. Install deps
flutter pub get
# 3. Set up environment
cp .env.example .env
# fill in your keys (see below)
# 4. Run
flutter runSUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
GROQ_API_KEY=your-groq-keyGet your keys:
- Supabase dashboard → Project Settings → API
- Groq console → API Keys
Run this once in your Supabase SQL editor:
-- Bookmarks
create table public.bookmarks (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade,
event_title text, event_subtitle text, event_emoji text,
perspective_label text, perspective_title text,
perspective_content text, perspective_emoji text, perspective_type text,
created_at timestamptz default now()
);
alter table public.bookmarks enable row level security;
create policy "own bookmarks" on public.bookmarks for all using (auth.uid() = user_id);
-- History
create table public.history (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade,
event_title text, event_subtitle text, event_emoji text,
explored_at timestamptz default now()
);
alter table public.history enable row level security;
create policy "own history" on public.history for all using (auth.uid() = user_id);The repo includes a vercel.json. Just add these environment variables in your Vercel project settings and deploy:
SUPABASE_URL
SUPABASE_ANON_KEY
GROQ_API_KEY
The build automatically generates .env from those values — no secrets committed.
lib/
├── core/ # Theme, router, constants
├── models/ # Data models
├── providers/ # State management (Provider)
├── services/ # Groq, Supabase auth, bookmarks, history
└── screens/
├── splash/
├── onboarding/
├── auth/
├── home/
├── event_detail/
├── perspectives/ # + deep_dive_sheet.dart
├── saved/
└── pricing/
Built with curiosity. History has more sides than you think.