Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A multi-tenant fullstack web application for managing kindergartens in the Algerian market. Built with Node.js/Express backend, React/Vite frontend, PostgreSQL database, and bilingual support (Arabic RTL + French LTR).
• Node.js 20+
• Docker (for PostgreSQL) or a local PostgreSQL 15 instance
• npm 9+
This installs dependencies for both backend and frontend (monorepo workspaces).
Edit .env with your values. For local development, tREADME 전문 보기 ↗A multi-tenant fullstack web application for managing kindergartens in the Algerian market. Built with Node.js/Express backend, React/Vite frontend, PostgreSQL database, and bilingual support (Arabic RTL + French LTR).
| Layer | Technology |
|---|---|
| Backend | Node.js, Express, TypeScript, Prisma ORM |
| Frontend | React 18, Vite, TypeScript, TailwindCSS, shadcn/ui |
| Database | PostgreSQL 15 |
| Real-time | Socket.io |
| i18n | react-i18next (Arabic RTL + French LTR) |
| Auth | JWT (access + refresh tokens), bcrypt |
| Payments | Chargily Pay (Edahabia + CIB) |
| File Storage | Cloudinary (authenticated uploads) |
| Notifications | Firebase FCM, Resend (email), Twilio (SMS) |
edunest-msm/
├── backend/ # Express API server
│ ├── prisma/ # Database schema & migrations
│ ├── src/
│ │ ├── modules/ # Feature modules (auth, schools, users, etc.)
│ │ ├── middleware/ # Auth, RBAC, tenancy, validation
│ │ ├── services/ # Shared services (notifications, socket, etc.)
│ │ └── lib/ # Prisma client, utilities
│ └── scripts/ # Seed scripts
├── frontend/ # React SPA
│ ├── src/
│ │ ├── components/ # UI components (layout, forms, ui)
│ │ ├── pages/ # Page components (admin, teacher, parent)
│ │ ├── hooks/ # React Query hooks
│ │ ├── contexts/ # Auth context
│ │ ├── i18n/ # Translation files (ar, fr)
│ │ └── lib/ # API client, utilities
│ └── public/
├── docker-compose.yml # Local dev with PostgreSQL
└── .env.example # Environment variables template
git clone <repo-url>
cd edunest-msm
npm install
This installs dependencies for both backend and frontend (monorepo workspaces).
cp .env.example .env
Edit .env with your values. For local development, the defaults work with Docker Compose.
Also create the backend-specific env file:
cp .env.example backend/.env
The key variables for local dev:
DATABASE_URL=postgresql://kiddoo:kiddoo_secret@localhost:5432/kiddoo?schema=public
JWT_ACCESS_SECRET=dev-access-secret-change-in-production
JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production
docker compose up postgres -d
This starts a PostgreSQL 15 container on port 5432 with:
kiddookiddoo_secretkiddoocd backend
npx prisma migrate deploy
npx prisma generate
cd backend
npx ts-node --transpile-only prisma/seed.ts
This creates test users and sample data:
| Role | Password | |
|---|---|---|
| Super Admin | [email protected] | super123 |
| Admin | [email protected] | admin123 |
| Teacher | [email protected] | teacher123 |
| Parent | [email protected] | parent123 |
To create the super admin separately:
npx ts-node --transpile-only scripts/create-super-admin.ts
Backend (runs on port 3000):
cd backend
npm run dev
Frontend (runs on port 5173):
cd frontend
npm run dev
Navigate to http://localhost:5173 and sign in with any of the test credentials above.
| Role | Portal | Capabilities |
|---|---|---|
| super_admin | Admin | Manage all schools, create/deactivate schools, full platform access |
| admin | Admin | Manage own school: users, classrooms, children, attendance, finance, communication |
| teacher | Teacher | Mark attendance, create daily reports, message parents |
| parent | Parent | View daily reports, attendance history, messages, invoices, consent forms |
schoolIdnpm run dev # Start dev server with hot reload
npm run build # Compile TypeScript
npm run start # Start production server
npm run lint # Run ESLint
npx prisma studio # Open Prisma database GUI
npx prisma migrate dev # Create new migration
npm run dev # Start Vite dev server
npm run build # Production build (type-check + bundle)
npm run preview # Preview production build
npm run lint # Run ESLint
To run the entire stack with Docker:
docker compose up --build
This starts:
Playwright end-to-end tests live in e2e/, covering login for all roles, admin user management, teacher attendance marking, and parent portal navigation.
docker compose up postgres -d # if not already running
npm run test:e2e # headless run
npm run test:e2e:ui # interactive UI mode
Each run resets a dedicated kiddoo_e2e database (drop, recreate, migrate, seed) and starts the backend/frontend on separate ports (3100/5180) from your normal dev servers, so it's safe to run alongside npm run dev without touching your local data.
All API endpoints follow the format:
// Success
{ "success": true, "data": T, "meta": { "pagination": { "page", "pageSize", "total", "totalPages" } } }
// Error
{ "success": false, "error": { "code": "string", "message": "string", "details": [] } }
Authentication: Bearer token in Authorization header.
See .env.example for the full list. Required for production:
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string |
JWT_ACCESS_SECRET | Secret for signing access tokens |
JWT_REFRESH_SECRET | Secret for signing refresh tokens |
CHARGILY_API_KEY | Chargily Pay API key |
CHARGILY_SECRET_KEY | Chargily webhook signature key |
CLOUDINARY_* | Cloudinary credentials for file uploads |
RESEND_API_KEY | Resend email service key |
TWILIO_* | Twilio SMS credentials |
FIREBASE_SERVICE_ACCOUNT | Firebase FCM service account JSON (backend push sender) |
VITE_FIREBASE_* | Firebase web app config for browser push (frontend) |
VITE_FIREBASE_VAPID_KEY | FCM "Web Push certificate" key (frontend) |
mainnpm run build in both backend and frontend to verifyPrivate — All rights reserved.