Skip to content

vishc1/StepWise

Repository files navigation



  ⚡ StepWise

Not the answer — just the first step.

An anti-cheating AI homework tutor that meets students exactly where they're stuck.

Live Demo · Demo Setup · Teacher Access


The Problem

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.


What It Does

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.


Features

Screen 1 — Problem Solver

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

Screen 2 — Session Summary

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

Screen 3 — Progress Dashboard

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

Screen 4 — Teacher View

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

Tech Stack

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.


Project Structure

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

Running Locally

Prerequisites

  • Node.js 18+
  • An OpenAI API key — get one from your OpenAI platform account

Setup

# 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 dev

The 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.

Supabase Database

Run supabase/schema.sql in the Supabase SQL editor. It creates:

  • stepwise_students
  • stepwise_chats
  • stepwise_sessions

All tables use row-level security so signed-in users can only read and write their own workspace data.

Deploy

  1. Push the repo to GitHub.
  2. Import it into Vercel.
  3. Add environment variables:
    • OPENAI_API_KEY
    • VITE_SUPABASE_URL
    • VITE_SUPABASE_ANON_KEY
    • optional VITE_OPENAI_MODEL
  4. 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 newer

After deploying, test these routes:

https://your-vercel-app.vercel.app/
https://your-vercel-app.vercel.app/api/openai/responses

The API route should reject GET requests with a method error, but app chat requests should work through POST.

Demo Setup

For the video, create one Supabase auth user manually or through the app:

student@stepwise.demo
teacher@stepwise.demo

Use 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.

3-Minute Pitch Script

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."


Screenshots

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]

Business Model

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.


Roadmap

  • 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

License

MIT — see LICENSE for details.


Built in one weekend · Powered by OpenAI · Made for students who are done pretending they understand

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors