Negotiation Practice Platform
Automated weekly negotiation training system for my students at The Negotiation Project Amsterdam. Built in 6 hours.
| Final | Tech | Result | Conv | Penalty | ||
|---|---|---|---|---|---|---|
| 1 | Sophie Bakker 🏆 | 4.68 | 4.80 | 4.50 | 4.70 | 0 |
| 2 | Marco de Vries 🥈 | 4.35 | 4.30 | 4.50 | 4.20 | 0 |
| 3 | Anna Kowalski 🥉 | 4.22 | 4.00 | 4.20 | 4.50 | 0 |
| 4 | James Chen | 3.89 | 3.70 | 4.10 | 3.90 | 0 |
| 5 | Fatima Al-Rashid | 3.51 | 3.90 | 3.50 | 3.70 | -0.2 |
| 6 | Lucas Schmidt | 3.05 | 3.20 | 3.60 | 3.50 | -0.4 |
I teach negotiations at The Negotiation Project Amsterdam. I wanted to give my students extra practice outside of class.
The Problem
My students needed more reps. Negotiations are a skill that improves with deliberate practice, but organizing practice sessions is a logistical nightmare:
Pairing students manually every week is time-consuming. Tracking submissions (did they do it?) is tedious. Grading creates a bottleneck on my time.
I needed a system that runs itself.
The Solution
I built an automated weekly negotiation practice platform.
Weekly Flow
Every Monday, the system opens a new case. Students are randomly paired.
| Monday | Case opens. Pairs announced. |
| Mon-Sat | Students negotiate and record. |
| Saturday 23:59 | Submission deadline. |
| Sunday | Peer grading. |
If you don’t submit, you’re out for next week. This creates accountability.
Dashboard
Students log in to see their current case, partner, and submit their recording.
Peer Grading
On Sunday, students grade each other on Technique, Result, and Conviction (1-5 each). This removes grading from my plate and teaches students to evaluate negotiations critically.
Leaderboard
To make it engaging, there’s a leaderboard. Students see their total score and compete.
This gamification creates motivation without extra effort from me.
| Final | Tech | Result | Conv | Penalty | ||
|---|---|---|---|---|---|---|
| 1 | Sophie Bakker 🏆 | 4.68 | 4.80 | 4.50 | 4.70 | 0 |
| 2 | Marco de Vries 🥈 | 4.35 | 4.30 | 4.50 | 4.20 | 0 |
| 3 | Anna Kowalski 🥉 | 4.22 | 4.00 | 4.20 | 4.50 | 0 |
| 4 | James Chen | 3.89 | 3.70 | 4.10 | 3.90 | 0 |
| 5 | Fatima Al-Rashid | 3.51 | 3.90 | 3.50 | 3.70 | -0.2 |
| 6 | Lucas Schmidt | 3.05 | 3.20 | 3.60 | 3.50 | -0.4 |
Opt-in Participation
Students can toggle whether they participate next week. If they don’t confirm, they don’t get paired. Simple.
Tech Stack
Astro + React frontend, Supabase for auth and database, Tailwind CSS for styling, hosted on Vercel.
Supabase was the key decision. It handles authentication (personal passwords for students) and the database in one place. No custom backend needed.
The system runs itself. I just add new cases each Sunday.