An AI-powered study app that keeps students cognitively engaged during study sessions. Upload your lecture notes as a PDF, and Socra extracts 8 core concepts, fires random timed checkpoint questions as you study, scores your answers with Claude, and shows a live leaderboard across everyone in your session. At the end you get a gap report with targeted revision actions.
Built at Durham Build Day 2025.
Install these if you don't have them:
| Requirement | Version | Download |
|---|---|---|
| Python | 3.11 or higher | https://www.python.org/downloads/ |
| Node.js | 18 or higher | https://nodejs.org/ |
| Git | Any | https://git-scm.com/ |
| Anthropic API key | — | https://console.anthropic.com/ |
To check if you already have them:
python3 --version
node --version
git --versiongit clone https://github.com/remade09/Durham-Build-Day-Project.git
cd Durham-Build-Day-Projectcd socra/backend
python3 -m venv venvActivate the virtual environment:
- Mac / Linux:
source venv/bin/activate - Windows:
venv\Scripts\activate
You should see (venv) appear at the start of your terminal line.
pip install -r requirements.txtThis installs: FastAPI, Uvicorn, Anthropic SDK, PyMuPDF, and a few other dependencies.
API key (optional): If you want to skip entering it in the browser every time, create a file called .env inside socra/backend/ with:
ANTHROPIC_API_KEY=sk-ant-your-key-here
If you skip this, you'll be prompted to paste your key in the app's UI instead — either way works.
Open a new terminal window (keep the backend terminal open):
cd Durham-Build-Day-Project/socra/frontend
npm installThis will take a minute or two to download dependencies.
You need two terminal windows running at the same time.
Terminal 1 — Backend:
cd socra/backend
source venv/bin/activate # Windows: venv\Scripts\activate
uvicorn main:app --reload --port 8000You should see: Uvicorn running on http://0.0.0.0:8000
Terminal 2 — Frontend:
cd socra/frontend
npm run devYou should see: Local: http://localhost:3000
Open your browser and go to: http://localhost:3000
- Enter your Anthropic API key at the top (saved in your browser, never sent anywhere except directly to the API)
- Enter your name and the topic you're studying
- Choose a session duration (10, 25, or 45 minutes)
- Upload a PDF of your lecture notes (drag and drop or click to browse)
- Create a session — a 6-character code and QR code will appear
- Click Start Studying
- A checkpoint question will fire automatically during your session — or hit ⚡ Trigger Checkpoint to test it immediately
- At the end, you'll see your gap report with revision actions
To let someone on the same Wi-Fi join your session:
# Terminal 1 — backend
uvicorn main:app --reload --port 8000 --host 0.0.0.0
# Terminal 2 — frontend
npm run dev -- --hostname 0.0.0.0Find your IP address:
- Mac:
ifconfig | grep "inet "(look for something like192.168.x.x) - Windows:
ipconfig(look for IPv4 Address)
Share this URL with your study partner: http://<your-ip>:3000?join=<SESSION_CODE>
They scan the QR code or paste the URL and their name will appear in your waiting room.
command not found: python3 — Install Python from https://www.python.org/downloads/ and restart your terminal.
command not found: npm — Install Node.js from https://nodejs.org/ and restart your terminal.
ModuleNotFoundError — Make sure you activated the virtual environment (source venv/bin/activate) before running uvicorn.
Backend not connecting — Make sure both terminals are running. The backend must be on port 8000 and the frontend on port 3000.
"Upload failed — check backend is running" — The backend terminal crashed or was closed. Restart it.
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 + TypeScript + Tailwind CSS |
| Backend | FastAPI (Python) |
| AI | Anthropic Claude (claude-sonnet-4-20250514) |
| PDF parsing | PyMuPDF |
- PDF upload → Claude extracts 8 core concepts + maps embedded images to concepts
- Flashcard deck to self-rate understanding before the sprint
- Adaptive checkpoint questions (difficulty scales with your score trend)
- Timed question modal (45 / 70 / 90s) graded by Claude with feedback
- Live leaderboard with score trend arrows and join notifications
- Session sharing via QR code and
?join=CODEURL - End-of-session gap report with mastery grid and revision actions
- Winner banner with top scorer highlighted