Every student knows the feeling: you're staring at a blank page, have no idea where to start, and the answer key is one Google search away.
The answer key doesn't help them learn. A full AI solution doesn't either.
What students actually need is a specific, concrete first step — something small enough to attempt, targeted enough to be useful, and limited enough that they have to do the thinking themselves.
That's StepWise.
StepWise gives students one step at a time. Paste any homework problem, pick your subject, and the AI gives you exactly one doorway in — not the answer, not a walkthrough, just the move that gets you unstuck. After you attempt it, you come back for the next one.
The result: students actually work through problems instead of copying solutions. And the AI remembers where they left off.
The core experience. Students paste any problem — math, science, history, English, or anything else — and get one targeted first step from a subject-specific AI persona.
- Subject-aware AI personas — each subject routes to a different tutoring style:
- Math → algorithmic, identifies problem type first, orients before computing
- Science → variables and knowns/unknowns, identifies the relevant law or process
- History → pure Socratic method, only asks questions, never supplies facts
- English → thesis, structure, argument — always anchored to the specific text
- Chat-bubble interface with a live Step N counter
- Image upload for worksheet photos, diagrams, screenshots, or handwritten work
- Persistent side navigation for Solver, Progress, Teacher View, and Appearance
- Reopenable recent chat threads and saved-problem shortcuts in the sidebar
- Student profile switching for live work and teacher-managed class rosters
- Demo mode, teacher alerts, no-answer guardrails, and pricing plans for pitch walkthroughs
- Enter to send, Shift+Enter for newline
- Animated thinking state while the AI responds
When a student finishes, a second AI call analyzes the full conversation and auto-generates a recap card:
- Concept tested — a 2–5 word label for what the problem was really about
- "Remember this next time" tip — one concrete, actionable takeaway
- Steps taken and subject tag
- 1–5 star confidence rating with live label ("Still lost" → "Got it!")
- One tap to save to their personal progress history
A personal learning history that builds over time, stored in localStorage:
- Streak counter — consecutive days with at least one problem solved
- Problems solved and average confidence stats
- Subject breakdown — color-coded by subject area
- "Hardest concept for you" — the concept with the lowest average confidence rating across all sessions, auto-detected from real data
- Full session history with date, steps, concept, and confidence stars
- Beautiful empty state for new users
A separate analytics dashboard for educators — the screen that makes StepWise look like a B2B product:
- Class overview — aggregate stats across all student sessions
- Student profiles — teachers can add students and review analytics by learner
- Needs-help alerts — students can mark "still stuck" or request smaller hints, and teachers see it
- AI question visibility — teachers can review the exact questions students asked AI, including flagged stuck moments
- Assignment mode — teachers can create class assignments and show assigned work in the dashboard
- Class heatmap — student-by-concept grid highlights confidence gaps across the class
- Cheating-risk signals — answer-copy attempts and stuck signals roll up into a teacher-facing risk score
- Exportable reports — generate a quick teacher progress summary for the class or a selected student
- Concept difficulty chart — horizontal bars showing which concepts students get stuck on most, color-coded by difficulty (Easy / Medium / Hard based on confidence ratings)
- Subject distribution — percentage breakdown of what students are working on
- Recent activity feed — live session list with anonymized student data
- Pre-populated with realistic demo data so the dashboard is never empty during a demo
| Layer | Technology |
|---|---|
| UI | React 18 (JSX), CSS-in-JS with injected keyframe animations |
| AI | OpenAI Responses API (gpt-5.4-mini by default) |
| State | React useState / useRef |
| Auth + Cloud Sync | Supabase Auth + Supabase Postgres tables |
| Persistence | Supabase when signed in, browser localStorage fallback for guest/demo mode |
| API pattern | Client fetch to /api/openai/responses through Vite dev proxy or Vercel serverless function |
| Build / Deploy | Vite React + Vercel-ready API route |
The product is built to demo without setup, but signed-in users can sync students, chats, and saved sessions through Supabase.
src/
├── App.jsx # Root component — state, routing, event handlers
├── constants.js # SUBJECTS array, SUBJECT_COLORS map
│
├── hooks/
│ └── useAPI.js # useAPI() — callAPI() and generateSessionSummary()
│
├── utils/
│ ├── prompts.js # All AI system prompts (5 subject personas + summary)
│ ├── analytics.js # Streak, concept stats, confidence helpers
│ ├── storage.js # localStorage read/write
│ ├── demoData.js # 10 hardcoded demo sessions for teacher view
│ └── styles.js # S style object + GLOBAL_CSS string
│
└── components/
├── Logo.jsx
├── EmptyIllustration.jsx
├── ThinkingDots.jsx
├── StarRating.jsx
├── ConfidenceLabel.jsx
├── ConceptBar.jsx
├── SummaryScreen.jsx
├── Dashboard.jsx
└── TeacherView.jsx
- Node.js 18+
- An OpenAI API key — get one from your OpenAI platform account
# 1. Clone the repo
git clone https://github.com/vishc1/StepWise.git
cd StepWise
# 2. Install dependencies
npm install
# 3. Add your API key
cp .env.example .env
# then edit .env:
# OPENAI_API_KEY=sk-proj-your_key_here
# VITE_SUPABASE_URL=https://your-project.supabase.co
# VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# 4. Start the dev server
npm run devThe dev server exposes a local /api/openai/responses endpoint that forwards requests to OpenAI with Authorization: Bearer $OPENAI_API_KEY.
Supabase Auth powers sign in and account creation. If Supabase env vars are missing, the app still lets you preview in guest mode.
For production, this repo includes a Vercel serverless function at api/openai/responses.js, so /api/openai/responses works after deployment.
Run supabase/schema.sql in the Supabase SQL editor. It creates:
stepwise_studentsstepwise_chatsstepwise_sessions
All tables use row-level security so signed-in users can only read and write their own workspace data.
- Push the repo to GitHub.
- Import it into Vercel.
- Add environment variables:
OPENAI_API_KEYVITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY- optional
VITE_OPENAI_MODEL
- Deploy.
This repo includes vercel.json and api/openai/responses.js, so Vercel should use:
Framework Preset: Vite
Build Command: npm run build
Output Directory: dist
Install Command: npm install
Node.js: 20.x or newerAfter deploying, test these routes:
https://your-vercel-app.vercel.app/
https://your-vercel-app.vercel.app/api/openai/responsesThe API route should reject GET requests with a method error, but app chat requests should work through POST.
For the video, create one Supabase auth user manually or through the app:
student@stepwise.demo
teacher@stepwise.demoUse any password allowed by your Supabase auth settings. During the demo, click Run demo in the sidebar to seed a realistic student, active problem thread, saved session, teacher alert, and recommended mini-lesson.
0:00-0:20 — Problem
Students use AI to copy answers, and teachers cannot see where learning breaks.
0:20-0:45 — Solution
StepWise is the anti-cheating AI tutor: it gives exactly one next step, blocks full-answer requests, and tracks where students get stuck.
0:45-1:45 — Student demo
Open a homework problem, show one-step tutoring, ask a follow-up, click "Still stuck", then show the saved chat.
1:45-2:20 — Teacher demo
Open Teacher View, show student profiles, needs-help alerts, recommended mini-lesson, and export report.
2:20-2:45 — Business
Free tier for students, $7/month Pro, and $4/student/month school dashboards.
2:45-3:00 — Close
"StepWise helps students learn without cheating and gives teachers the data they need to intervene."
Replace placeholders with actual screenshots before submission
| Screen | Preview |
|---|---|
| Problem Solver — idle | [screenshot: problem input card] |
| Problem Solver — active | [screenshot: chat bubbles with step badge] |
| Session Summary | [screenshot: recap card with confidence stars] |
| Progress Dashboard | [screenshot: streak + stats + session list] |
| Teacher View | [screenshot: concept difficulty chart] |
StepWise is built for two customers: the student and the school.
Student tier
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 3 problems/day |
| Pro | $7/month | Unlimited problems |
School / District tier (B2B)
The Teacher View is the unlock. Once an administrator sees which concepts their students struggle with most — across dozens of students, automatically tracked — the conversation shifts from "cool chatbot" to "learning analytics platform."
Projected school license: $4/student/month (billed annually). A single class of 30 students at that rate outperforms 100 Pro subscriptions.
Why the data loop matters: Every confidence rating a student submits improves the teacher dashboard. Students generate data. Data makes the teacher product better. Better teacher product sells school licenses. School licenses fund more AI compute. This is the retention flywheel.
- Backend/API proxy for API key security
- User accounts with Supabase-backed workspace sync
- LMS integrations (Google Classroom, Canvas)
- Teacher-assigned problems with built-in step scaffolding
- Weekly concept report emails for parents
- Adaptive difficulty — StepWise remembers which concepts you've struggled with and surfaces them again
MIT — see LICENSE for details.
Built in one weekend · Powered by OpenAI · Made for students who are done pretending they understand