feat: complete Phase 1 foundation scaffold
Some checks failed
CI / Lint (push) Has been cancelled
CI / TypeCheck (push) Has been cancelled
CI / Test (push) Has been cancelled
Deploy / Docker Build & Push (map[context:. dockerfile:apps/api/Dockerfile name:api]) (push) Has been cancelled
Deploy / Docker Build & Push (map[context:. dockerfile:apps/cms/Dockerfile name:cms]) (push) Has been cancelled
Deploy / Docker Build & Push (map[context:. dockerfile:apps/web/Dockerfile name:web]) (push) Has been cancelled
CI / Build (push) Has been cancelled
Deploy / Deploy (push) Has been cancelled

- Monorepo: Turborepo + pnpm workspaces with 7 apps/packages
- Backend: NestJS scaffold with 9 modules (auth, tenant, curriculum, simulation, portfolio, ai-coach, analytics, classroom, gamification)
- Frontend: React 18 + Vite + TailwindCSS + shadcn/ui with 10 pages, 14 UI primitives, 3 Zustand stores
- Database: Prisma schema with 19 models, 13 enums, seed script, multi-tenant ready
- Docker: Dev, production, and Portainer Compose files with Traefik reverse proxy
- Configuration: .env.example (47 vars), Zod validation, frontend-safe env exposure
- i18n: English + Greek locale files (10 files), ICU MessageFormat, react-i18next
- Shared packages: @investplay/types, @investplay/ui, @investplay/i18n, @investplay/utils
- CI/CD: GitHub Actions (lint, typecheck, test, build, deploy, PR checks)
- Documentation: CONTEXT.md, ARCHITECTURE.md (10 Mermaid diagrams), API.md, LOCALIZATION.md, DEVELOPMENT-ROADMAP.md
- Infrastructure: Dockerfiles (dev + prod), nginx configs, backup/healthcheck scripts
- Security: JWT auth guards, role-based access, rate limiting, Helmet, CORS, PII sanitization
This commit is contained in:
Lefteris Notas
2026-06-12 19:32:57 +03:00
parent fa71c60cfc
commit e75f913f1c
226 changed files with 17547 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
{
"dashboard": {
"title": "Classroom Dashboard",
"overview": "Overview",
"totalStudents": "Total Students",
"averageScore": "Average Score",
"completionRate": "Completion Rate",
"reports": "Reports",
"recentActivity": "Recent Activity",
"noActivity": "No recent activity"
},
"assignments": {
"title": "Assignments",
"create": "Create Assignment",
"edit": "Edit Assignment",
"delete": "Delete Assignment",
"dueDate": "Due Date",
"requiredScore": "Required Score",
"maxAttempts": "Max Attempts",
"submissions": "Submissions",
"noAssignments": "No assignments created yet",
"status": {
"open": "Open",
"closed": "Closed",
"draft": "Draft"
}
},
"cohorts": {
"title": "Cohorts",
"create": "Create Cohort",
"join": "Join Class",
"inviteCode": "Invite Code",
"students": "Students",
"noCohorts": "No cohorts yet",
"emptyClass": "No students in this class yet"
},
"reports": {
"title": "Reports",
"generate": "Generate Report",
"export": "Export",
"compositeScore": "Composite Score",
"roi": "ROI",
"riskManagement": "Risk Management",
"esgAlignment": "ESG Alignment",
"quizScore": "Quiz Score",
"lessonCompletion": "Lesson Completion",
"studentProgress": "Student Progress",
"classAverage": "Class Average"
},
"teacher": {
"actions": {
"createAssignment": "New Assignment",
"viewSubmissions": "View Submissions",
"gradeAssignment": "Grade Assignment",
"manageStudents": "Manage Students",
"sendAnnouncement": "Send Announcement",
"viewReports": "View Reports"
},
"announcement": {
"title": "Announcement",
"placeholder": "Write an announcement to your class...",
"send": "Send Announcement",
"sent": "Announcement sent successfully"
}
}
}