Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Planning tool for shipyard subcontractors (cleaning & protection orders)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗HullOps is a planning tool for subcontractors who work on shipyards. Project leads plan cleaning and protection jobs on vessels, put a team on each job, and follow its progress until it's done.
Live demo: https://hullops.vercel.app (demo data only; log in with a seeded demo user, see Getting started). Meant for a phone: open it there and add it to the home screen.
Status: in development. The API covers vessels, orders, teams, comments and login with roles. The web app, in English and German, has login, the order overview, order details with status updates, comments and team management, and creating orders. It is mobile first and installable as a PWA (see Roadmap).
Subcontractors on a shipyard do two kinds of work, which can run at the same time on the same vessel:
Protection uses materials such as OSB (standard or fire-resistant), Proplex (3 mm or HD), and glass fiber fabric, which protects against fire and welding sparks.
Each job is an order for one vessel. An order moves from PLANNED to IN_PROGRESS to DONE, has a team of workers, and keeps a history of status updates with photos. An order is overdue when its due date has passed and it isn't done yet.
HullOps comes from a real way of working. On the yard, planning and all communication run through WhatsApp, and Crewmeister holds working hours and leave. The goal is to move the planning out of chat threads into one place, and keep WhatsApp for what is genuinely live. The choices below follow from that.
Who uses it, and why there are four roles
| Role | Who | Why it exists |
|---|---|---|
| Project lead | The office | Plans orders, passes on what the shipyard tells them, manages teams, and invoices the customer. |
| Team lead (Vorarbeiter) | On the yard, one per vessel | Knows what his vessel needs, so he asks for workers for the coming week himself, including by name. |
| Worker | On the yard | Reads the plan and updates the status of his orders. |
| HR | Office | Hires people, so creates workers, team leads and project leads (recording absence is planned). Cannot create or touch administrators or other HR, and sees no orders, vessels or staffing. |
| Administrator | Technical | Manages accounts. Reads everything but doesn't run the work, so responsibilities stay separate. |
The shipyard's own people (the customer's side) have no login. The project lead enters what they say as free-text comments, so the app doesn't need accounts for other companies and stays single-tenant.
Decisions and their reasons
CLEANING, IN_PROGRESS) and the web app translates them, English and German, because it is mainly used in Germany.More detail: docs/ux.md describes who uses the app, the bar it is held to (any new user can use it after an hour of explanation) and the main flows with sketches. docs/caching.md says what is cached, what is not and why.
Planned: leave and sickness from Crewmeister
Workers have a profile in both systems, and you can't plan someone who is on leave. The plan is a small "availability" model in HullOps that the planning page uses (unavailable workers are marked, and a request by name for someone absent gives a warning), fed by interchangeable sources behind one interface: a demo source with sample data, and a Crewmeister source using its V3 absence API.
This is not built yet; see the Roadmap.
| Part | Technology |
|---|---|
API (apps/api) | NestJS, GraphQL (Apollo, code-first), Prisma 7, PostgreSQL 16 |
Web (apps/web) | Next.js 16 (App Router, Server Actions), React 19, Tailwind CSS v4, next-intl (English/German) |
| Tooling | pnpm workspaces, TypeScript, Jest, oxlint / ESLint, GitHub Actions |
You need Node 24, pnpm 12 and Docker.
pnpm install # install all workspaces
docker compose up -d db # start Postgres 16 on :5432
cp apps/api/.env.example apps/api/.env # point the API at that database
cd apps/api
pnpm exec prisma migrate deploy # create the tables
pnpm exec prisma generate # generate the typed database client
pnpm exec prisma db seed # optional: demo users, vessels and orders
cd ../..
pnpm dev # API on :4000, web on :3000
Then open:
[email protected] (password hullops-dev).The repo includes settings for VS Code and Cursor in .vscode/. When you open the project, the editor suggests the recommended extensions:
.env highlightinggraphql.config.yml points the GraphQL extension at the API's generated schema, so queries get autocomplete and validation.
hullops/
├── apps/
│ ├── api/ NestJS GraphQL API and the Prisma schema; see apps/api/README.md
│ └── web/ Next.js frontend; see apps/web/README.md
├── .github/workflows/ CI
├── .vscode/ editor settings and recommended extensions
└── docker-compose.yml local Postgres
Run these from the repository root:
pnpm dev # run API and web in parallel
pnpm -r lint # lint all apps
pnpm -r test # unit tests
pnpm --filter api test:e2e # API end-to-end tests (use their own hullops_test database)
pnpm -r build # production builds
Every push to main and every pull request runs the CI workflow against a throwaway Postgres container. It installs dependencies, generates the Prisma client, applies migrations, then runs lint, unit tests, API end-to-end tests and builds.
The web app goes on Vercel, the API runs as a container (see apps/api/Dockerfile) next to a managed PostgreSQL. Steps, environment variables and caveats are in DEPLOYMENT.md.
[email protected] in the demo data)