Open-source building blocks for secure operations software.
Moshaver Education is the first connected workspace built on the platform.
English · فارسی · Showcase · Documentation
▶ Run Moshaver · See the product · Contribute
Moshaver Open Platform is an MIT-licensed, self-hostable foundation for secure multi-organization operations software. Moshaver Education is its first product: an education operations platform that connects the people and workflows around a student in one system.
Instead of separating planning, assessment, communication, reporting, and follow-up into disconnected tools, Moshaver brings them together through:
- a role-aware Admin application for education teams and counselors;
- a Student application for plans, learning, assessments, chat, notifications, and progress;
- a versioned API with server-enforced authorization and scoped data access;
- shared contracts and modular backend capabilities for long-term maintainability;
- web, PWA, Tauri desktop/native, and Android delivery paths.
The active product line is v2 on main / develop. The historical v1.4 source is preserved on archive/v1.4. The public platform identity is additive;
existing moshaver package names, URLs, and contracts are unchanged.
Moshaver is not presented as a generic CRM or a finished no-code product. Its reusable CMB — Composable Modular Backend Architecture layer provides a safe baseline for other operational systems: identity, sessions, authorization, tenancy, health, migrations, notifications, realtime, activity, and data transfer. Your product still owns its domain model and policy.
Start with the Moshaver Open Platform guide to run the education product, generate a new CMB service, understand extension boundaries, and see the platform roadmap.
Education teams often need to answer simple questions across many separate systems:
Who needs attention today? What is this student working on? Are they falling behind? What changed after the last assessment? Who has followed up? What should happen next?
Moshaver is designed around that operational loop.
| Area | What Moshaver provides |
|---|---|
| Student operations | Student records, guardian relationships, onboarding, follow-up, scoped access |
| Planning | Study plans, tasks, study sessions, progress and operational follow-up |
| Assessment | Exams, quizzes, questions, mistake/review workflows, recommendations and analytics |
| Communication | Chat, realtime capabilities, notifications and live-oriented admin workflows |
| Learning | Subjects, learning resources and education workflows |
| Reporting | Dashboards, reports, activity and analytics |
| Operations | Needs-attention queues, system tools, retry/recovery flows, import/export |
| Delivery | Admin web app, Student web/PWA, Tauri integration and Android build path |
See the product showcase for a guided walkthrough of the main flows.
Moshaver is designed so operators do not lose context when moving between tools.
A typical workflow is:
- Open Needs attention to see urgent student or system items.
- Select a student and review their current context.
- Move into Planner to inspect or adjust work.
- Open Reports to understand progress and activity.
- Continue the conversation in Chat.
- Review Assessments and follow-up items.
- Use role/capability-aware actions without bypassing server-side authorization.
The exact screens and actions available depend on the user's role, capabilities, organization, and student scope.
| Project | Purpose | Main stack | Local port |
|---|---|---|---|
apps/admin/ |
Role-aware education operations | React 18 + Vite | 8081 |
apps/student/ |
Student web/PWA/native experience | React 18 + Vite + Tauri | 8080 |
apps/api/ |
Versioned backend and composition root | NestJS 11 + Fastify + TypeORM | 4000 |
student-core/ |
Runtime-neutral student domain/contracts | TypeScript | — |
packages/api-contract/ |
Shared API contract boundary | TypeScript | — |
packages/cmb/ |
Composable backend capabilities | TypeScript | — |
Moshaver is a grouped product monorepo with a modular-monolith backend.
flowchart LR
ADMIN[Admin
React + Vite] -->|/api/v2| API[API
NestJS + Fastify]
STUDENT[Student
React + PWA + Tauri] -->|/api/v2| API
CORE[student-core] --> STUDENT
CONTRACT[api-contract] --> ADMIN
CONTRACT --> CORE
CMB[CMB packages
Auth · Identity · Tenancy
Realtime · Notifications · Activity] --> API
API --> DB[(TypeORM / SQLite)]
The backend remains the composition root while reusable capabilities are extracted incrementally into CMB — Composable Modular Backend Architecture packages.
Start here for deeper technical detail:
- Architecture overview
- System map
- Repository architecture
- Dependency boundaries
- Backend v2 design
- Student/Tauri runtime
Requirements: Git and Docker Compose.
git clone https://github.com/Mobin-Karam/moshaver.git
cd moshaver
docker compose up --buildOpen:
| Service | URL |
|---|---|
| Student app | http://localhost:8080 |
| Admin app | http://localhost:8081 |
| API health | http://localhost:4000/health |
| API readiness | http://localhost:4000/ready |
| Swagger | http://localhost:4000/api/v2/docs |
| OpenAPI JSON | http://localhost:4000/api/v2/openapi.json |
Stop with:
docker compose downDo not add --volumes unless deleting local persisted data is intentional.
Repository tooling expects Node.js >=22.13.0 <23.
npm run bootstrap
npm run workspace:checkBackend:
cp apps/api/.env.example apps/api/.env
npm --prefix apps/api run migration:run
npm --prefix apps/api run seed
npm --prefix apps/api run devFrontend:
npm --prefix apps/admin run dev
# or
npm --prefix apps/student run devNever commit generated .env files, tokens, private keys, production data, or credentials.
| Layer | Main technologies |
|---|---|
| Admin | React 18, Vite 6, React Router 7, TanStack Query, React Hook Form, Zod, Tailwind CSS |
| Student | React 18, Vite 5, Zustand, Tailwind CSS, Tauri 2 |
| API | NestJS 11, Fastify, TypeORM, Swagger/OpenAPI, class-validator, Zod |
| Persistence | SQLite / better-sqlite3 through TypeORM in the default local topology |
| Testing | Jest, Vitest, Testing Library, axe-core, Playwright |
| Delivery | Docker Compose, PWA, Tauri, Android build path |
moshaver/
├── apps/
│ ├── admin/ # Admin v2
│ ├── api/ # Backend API v2
│ └── student/ # Student web/PWA/Tauri app
├── packages/
│ ├── api-contract/ # Shared API contracts
│ └── cmb/ # Reusable backend capabilities
├── student-core/ # Runtime-neutral student domain package
├── docs/ # Architecture, product, operations and release docs
├── tooling/ # Workspace, architecture and generator tooling
├── scripts/
├── examples/
├── ARCHITECTURE.md
├── SHOWCASE.md
└── README.md
The main API prefix is:
/api/v2
Health endpoints remain outside the versioned prefix:
/health
/ready
Interactive documentation is available at /api/v2/docs, with the machine-readable schema at /api/v2/openapi.json.
See Backend v2 HTTP API.
Useful repository-level checks:
npm run workspace:check
npm run architecture:check
npm run contracts:check
npm run verify
npm run docs:checkSecurity-sensitive behavior is enforced on the server. The active backend includes capability authorization, organization/student scoping, validation, CORS, Helmet, cookie-based authentication flows, CSRF expectations for authenticated mutations, migrations, and dedicated security testing.
Please do not disclose suspected vulnerabilities in public issues. Follow SECURITY.md.
| Need | Start here |
|---|---|
| See the product | SHOWCASE.md |
| Understand the repo | ARCHITECTURE.md |
| Browse all docs | docs/README.md |
| Run and verify locally | Repository runbook |
| Make a safe change | Developer handbook |
| Build another product on CMB | Moshaver Open Platform |
| Platform direction | Platform roadmap |
| Get help | Support |
| Understand Admin coverage | Admin capability matrix |
| Review product direction | Version roadmap |
| Review changes | Product changelog |
Contributions are welcome. Read CONTRIBUTING.md before opening a pull request.
Moshaver uses leaf lockfiles and a repository workspace graph rather than a root npm workspace lockfile. Follow the repository's architecture and dependency-boundary rules when changing shared code.
Moshaver is licensed under the MIT License. See LICENSE.
Moshaver v2
One connected workspace for student planning, learning, communication, assessment, and follow-up.