AI-powered tutoring platform designed to organize and support online learning.
A web application developed as part of an engineering thesis project at the Wrocław University of Science and Technology (ZPI). Tutora provides an interactive environment for tutors and students — including real-time meetings, collaborative whiteboards, chat, notes, and AI-assisted learning.
| Category | Technology |
|---|---|
| Framework | Next.js 15 (App Router, Turbopack) |
| Language | TypeScript |
| UI | shadcn/ui, Tailwind CSS |
| State & Data | React Query, React Hook Form |
| Real-time | WebSockets, WebRTC |
| Whiteboard | Excalidraw |
| PWA | next-pwa |
├── app/ # Next.js App Router pages & layouts
│ ├── api/ # API routes
│ ├── auth/ # Authentication pages
│ ├── dashboard/ # Dashboard & invitations
│ ├── login/ # Login page
│ └── room/ # Room / classroom view
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
├── lib/ # Utilities & shared logic
├── types/ # TypeScript type definitions
├── public/ # Static assets
└── middleware.ts # Next.js middleware (auth, routing)
- Node.js ≥ 18
- npm
git clone https://github.com/tutora-zpi/web-client.git
cd web-clientcp .env.sample .env.localEdit .env.local with the appropriate service URLs:
| Variable | Default | Description |
|---|---|---|
NEXT_PUBLIC_BOARD_SERVICE |
http://localhost:8001 |
Whiteboard service |
NEXT_PUBLIC_CHAT_SERVICE |
http://localhost:8002 |
Chat service |
NEXT_PUBLIC_MEETING_SCHEDULER_SERVICE |
http://localhost:8003 |
Meeting scheduler |
NEXT_PUBLIC_WEB_RTC_SERVICE |
http://localhost:8004 |
WebRTC service |
NEXT_PUBLIC_USER_SERVICE |
http://localhost:8080 |
User service |
NEXT_PUBLIC_CLASS_SERVICE |
http://localhost:8081 |
Class management service |
NEXT_PUBLIC_NOTIFICATION_SERVICE |
http://localhost:8888 |
Notification service |
NEXT_PUBLIC_NEXT_JS_API_URL |
http://localhost:3000/api |
Next.js API proxy |
NEXT_PUBLIC_WEBSOCKET_GATEWAY |
ws://localhost:8010 |
WebSocket gateway |
NEXT_PUBLIC_NOTE_SERVICE |
http://localhost:8005/api |
Note service |
npm installnpm run devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start dev server with Turbopack |
npm run build |
Create production build |
npm run start |
Start production server |
npm run lint |
Run ESLint |