Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Planning for cleaning and protection work on shipyards
BusinessTypeScript · PythonGitHub @MScheltjensOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Planning tool for shipyard subcontractors (cleaning & protection orders)
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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)