A platform where teachers create classrooms and rubrics, and students engage in chat or audio conversations with bots to practice, improve, and get feedback on English.
Since it uses WebSockets and a long task queue in redis and bullMQ, it requires a VPS for deployment rather than a serverless architecture. There’s currently no deployed link available, please refer to the demo instead.
Application Homepage
Teacher Dashboard
Classroom Management
Student Chatroom with Bot
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS
- Backend: Node.js, tRPC, TypeScript
- Database: PostgreSQL with Prisma ORM, with WebSockets
- Queue: BullMQ with Redis
- Auth: JWT with Jose
- Build: Turbo (monorepo), pnpm
- Deployment: Docker, Docker Compose
- Node.js >= 18
- pnpm 8.15.6
- Docker & Docker Compose
npm install --global corepack@latest
# Install dependencies
pnpm install
# Start Database
docker compose up -d postgres redis
# Setup Env Variables
find . -name ".env.example" -exec sh -c 'cp "$1" "${1%.example}"' _ {} \;
Use Vercel AI Interface to Generate Token for enabling ai features
# Setup database
pnpm run db:first-time-setup
# Start development servers
pnpm run devServices run on:
- Web: http://localhost:3000
- Backend: http://localhost:3005
- BullMQ: ws://localhost:3006
# Build all services
docker-compose -f docker-compose.build.yaml build
# Run in background
docker-compose upfind . -name ".env.example" -exec sh -c 'cp "$1" "${1%.example}"' _ {} \;
Required variables:
DATABASE_URLREDIS_URLJWT_SECRETAI_GATEWAY_API_KEY
The main prompt templates for AI features are located in packages/common-utils/prompt.ts.
These prompts are currently generated using Gemini and are still being improved.
If you need to add or update a prompt, please edit or add a file in that directory. 📄




