Home
Softono

Shiori V1

Open source MIT JavaScript
43
Stars
2
Forks
6
Issues
0
Watchers
2 months
Last Commit

 About Shiori V1

Open-source AI study companion — Google Classroom sync, Gemini AI plans, SRS flashcards, GPA predictor, AI quiz, MCP server for Claude Code. Try demo at shiori-v1.vercel.app

Platforms

Web Self-hosted Docker

Languages

JavaScript

Need Help Installing Shiori V1?

We provide expert installation service for this software. Our team will install, configure, and secure Shiori V1 on your server. plans start at just $30.

栞 Shiori

The AI-powered study companion for serious students.

GitHub stars License: MIT Live Demo CI

🎮 Try Demo · 📖 Docs · 🐛 Report Bug · 💡 Request Feature


What is Shiori?

Shiori (栞, bookmark in Japanese) is an open-source AI study companion built for students who take their grades seriously. It combines AI-powered study tools, gamification, and productivity features into one beautiful dark-mode app.

No subscription required for core features. Bring your own free Gemini API key. Self-hostable in 5 minutes.

🎮 Try the live demo — no account, no API key needed.


✨ Features

Feature Description
🤖 AI Quiz Generator Generate MCQ quizzes from your notes with Gemini AI
🃏 AI Flashcards Auto-generate spaced repetition flashcard decks
📊 Grade Tracker Weighted grade calculator with GPA predictor
📅 Assignment Manager Due dates, priorities, completion tracking
📝 Markdown Notes Two-panel editor with live preview
🎯 Focus Mode Pomodoro timer with task linking
🏆 Leaderboard Compare XP and streaks with friends
📈 Analytics Study time, grade trends, completion rates
🌱 Habit Tracker Daily habit streaks with completion heatmap
🗓 Study Plans AI-generated day-by-day study schedules
📚 Syllabus Import Parse syllabi to auto-create assignments
⌨️ Keyboard Shortcuts Power-user navigation (gh, ga, gn, gq...)
🎮 Gamification XP system, levels (Freshman → Graduate), achievements

🚀 Quick Start

Option 1: Live demo (no setup)

👉 shiori-v1.vercel.app/demo

No account. No API key. Full experience.

Option 2: Deploy to Vercel (1 click)

Deploy with Vercel

Option 3: Self-host locally

Prerequisites: Node.js 18+, free Supabase account, free Gemini API key

# Clone
git clone https://github.com/kaorii-ako/Shiori-v1.git
cd Shiori-v1

# Configure
cp .env.example .env
# Edit .env with your Supabase URL + anon key

# Run Supabase schema
# → Open supabase/schema.sql in your Supabase SQL Editor and run it

# Install + start
npm install
npm run dev

Open http://localhost:5173 → click Try Demo or sign up.

Environment Variables

Variable Required Where to get
VITE_SUPABASE_URL ✅ Yes supabase.com → Settings → API
VITE_SUPABASE_ANON_KEY ✅ Yes supabase.com → Settings → API
VITE_GEMINI_API_KEY Optional aistudio.google.com/apikey (free)

🏗 Tech Stack

Frontend:   React 18 + Vite + Zustand
Database:   Supabase (PostgreSQL + Auth)
AI:         Google Gemini 1.5 Flash (client-side, BYOK)
Deployment: Vercel

⌨️ Keyboard Shortcuts

Shortcut Action
g h Go to Home
g a Go to Assignments
g n Go to Notes
g f Go to Flashcards
g q Go to Quiz
g g Go to Grades
? Show all shortcuts

📁 Project Structure

Shiori-v1/
├── client/               # React + Vite frontend
│   └── src/
│       ├── pages/        # 16 pages (Home, Assignments, Grades, Notes...)
│       ├── components/   # Shared components (Sidebar, GlassCard, AIChat...)
│       ├── stores/       # Zustand state management
│       ├── utils/        # theme.js, gemini.js, demoData.js
│       └── lib/          # supabase.js, db.js
├── server/               # Express.js backend (optional, for Stripe webhooks)
├── extension/            # Chrome MV3 extension
├── supabase/             # Database schema + setup guide
└── docs/                 # Screenshots, specs

🤝 Contributing

Contributions are welcome! Shiori is built by students for students.

  1. Check good first issues
  2. Read CONTRIBUTING.md
  3. Fork → branch → PR

📄 License

MIT — free for personal and commercial use.


Made with ❤️ by Tawin Tangsukson

If Shiori helps you study better, please consider giving it a ⭐ — it means a lot!