Loading repository data…
Loading repository data…
codestcode / repository
AI-powered Chrome extension that turns your browser sidebar into a full study assistant ,chat, quiz, and summarize any web content.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
AI-powered Chrome extension that turns your browser sidebar into a full study assistant , chat, quiz, and summarize any web content.
mouseup listenerchrome:// pages via scripting fallback)| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS, Lucide Icons |
| Backend | Express.js, TypeScript, OpenRouter API, Nodemailer |
| Database | Supabase (PostgreSQL) |
| Auth | bcrypt, custom session tokens, OTP-based password reset |
studysidebar/
├── backend/
│ ├── src/
│ │ ├── routes/ # auth.ts, chat.ts, note.ts, quiz.ts, summary.ts
│ │ ├── utils/ # auth.ts, openrouter.ts, email.ts
│ │ ├── db/client.ts # Supabase client
│ │ └── index.ts # Express server
│ ├── .env.example
│ └── package.json
├── extension/
│ ├── src/
│ │ ├── components/ # App, Auth, Chat, Notes, Quiz*, Summary, Settings, Theme
│ │ ├── utils/ # api.ts (backend client), storage.ts (Chrome storage)
│ │ ├── popup.html/.tsx # Popup entry point
│ │ ├── sidepanel.html/.tsx # Side panel entry point
│ │ ├── background.ts # Service worker
│ │ ├── content.ts # Content script
│ │ ├── manifest.json # Chrome manifest
│ │ └── styles.css # Custom styling (glass3d, animations)
│ ├── vite.config.ts
│ └── package.json
├── package.json # Root monorepo orchestrator
├── pnpm-workspace.yaml
├── QUICKSTART.md
└── README.md
# Install dependencies
pnpm install
# Configure environment
cp backend/.env.example backend/.env
# Edit backend/.env with your Supabase URL, service role key, and OpenRouter key
# Set up database tables in Supabase SQL Editor
# (see Database Schema below)
# Build extension
pnpm --filter ./extension build
# Start backend (port 3001)
pnpm dev:backend
chrome://extensionsextension/distpnpm dev
Base URL: http://localhost:3001/api
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/register | Create account |
| POST | /auth/login | Login |
| POST | /auth/forgot-password | Request OTP |
| POST | /auth/reset-password | Reset password with OTP |
| Method | Endpoint | Description |
|---|---|---|
| POST | /chat/message | Send message (SSE streaming) |
| GET | /chat/history | Get chat history |
| POST | /quiz/generate | Generate quiz |
| POST | /quiz/submit | Submit answers and get score |
| GET | /quiz/list | List user's quizzes |
| POST | /notes/generate | Generate Cornell notes |
| PATCH | /notes/:id | Update notes (inline edit) |
| GET | /notes/list | List user's notes |
| GET | /notes/page/:pageUrl | Get notes for a specific page |
| POST | /summary/generate | Generate summary (SSE streaming) |
| GET | /summary/list | List user's summaries |
| Command | Description |
|---|---|
pnpm dev | Run backend + extension concurrently |
pnpm build | Build all packages |
pnpm dev:backend | Start backend only (tsx watch) |
pnpm --filter ./extension build | Build extension only |
pnpm --filter ./extension build, check extension/dist exists, refresh chrome://extensionspnpm dev:backend running on port 3001?OPENROUTER_API_KEY is set and has creditsnpx kill-port 3001From passive reader to active master.