Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
QR-basert utleie av anleggsmaskiner. Kunden skanner, leier uten innlogging, og leverer ved å ta bilde. Admin har oversikt i liste og kalender. Begrunnelsen bak designvalgene ligger i docs/TEKNISK-PLAN.md. Gå til supabase.com, lag et gratis prosjekt, og velg region Frankfurt (eu-central-1) – nærmest Norge, og holder persondata innenfor EØS. Åpne SQL Editor i Supabase-dashbordet, lim inn hele innholdet i supabase/migrations/0001_init.sql og kjør det. Under Storage, lag en bøtte med navn bilder. Sett den til privat – bildene hentes gjennom signerte URL-er, ikke åpne lenker.README 전문 보기 ↗
QR-basert utleie av anleggsmaskiner. Kunden skanner, leier uten innlogging, og leverer ved å ta bilde. Admin har oversikt i liste og kalender.
Begrunnelsen bak designvalgene ligger i docs/TEKNISK-PLAN.md.
Gå til supabase.com, lag et gratis prosjekt, og velg region Frankfurt (eu-central-1) – nærmest Norge, og holder persondata innenfor EØS.
Åpne SQL Editor i Supabase-dashbordet, lim inn hele innholdet i
supabase/migrations/0001_init.sql og kjør det.
Under Storage, lag en bøtte med navn bilder. Sett den til privat –
bildene hentes gjennom signerte URL-er, ikke åpne lenker.
cp .env.local.example .env.local
Fyll inn verdiene fra Project Settings → API i Supabase.
npm run dev
Under Authentication → Users i Supabase, legg til en bruker med e-post og passord. Kjør så i SQL Editor:
insert into admin_brukere (id, navn, epost)
select id, 'Ditt Navn', email from auth.users where email = '[email protected]';
Videre brukere opprettes fra /admin/brukere inne i appen.
src/app/m/[qr]/ Kundeside per maskin (QR-kode på maskinen)
src/app/retur/ Felles retur-side (QR-kode på arbeidsstedet)
src/app/leie/[ref]/ Kvittering og retur for én enkelt leie
src/app/ansatt/ Uttak til prosjekter for egne folk, krever innlogging
src/app/admin/ Adminpanel, krever innlogging
src/lib/supabase/ Databaseklienter
src/proxy.ts Sesjonsoppfriskning (het middleware.ts før Next 16)
supabase/migrations/ Databaseskjema
docs/ Teknisk plan
| Rolle | Kommer inn på | Kan ta ut utstyr til prosjekter |
|---|---|---|
| Admin | alt | ja |
| Servicearbeider | verkstedet | ja |
| Ansatt | /ansatt | ja |
Brukere lages under /admin/brukere med et midlertidig passord, som må
byttes ved første innlogging. Prosjektene de ansatte velger mellom, legges
inn under /admin/prosjekter. Internleie regnes ut når utstyret leveres,
og summeres per prosjekt – den faktureres ikke.
Varslingskoden ligger klar, men er ikke konfigurert. Uten oppsettet under laster alt som normalt; varsler hoppes stille over, og varslingsskjemaet i innstillingene gir feilmelding ved lagring.
supabase/migrations/0003_varsling.sql i
Supabase SQL Editor. (0002 må være kjørt først – den er kjørt.)send.techauge.no – subdomene, så SPF-en til vanlig e-post ikke
berøres. Lag en API-nøkkel. Gratisplanen har 1 domene og
3 000 e-poster/mnd, som holder lenge her.RESEND_API_KEY=re_...
[email protected]
CRON_SECRET=<tilfeldig streng, f.eks. openssl rand -hex 32>
/admin/innstillinger.
Test med «Send forfallsvarsel nå» – utfallet vises i loggen på
samme side.Merk: uten verifisert domene (kun [email protected]) kan Resend
bare sende til kontoens egen adresse. Kunder får ingenting, og
feilene vises kun i e-postloggen.
SUPABASE_SERVICE_ROLE_KEY omgår all radsikkerhet og må aldri havne i
nettleseren. Den brukes kun i server-ruter for kundeflyten, siden kunden ikke
er innlogget og derfor ikke har en sesjon databasen kan vurdere. Hver slik rute
verifiserer selv at enhets-ID eller leiereferanse hører til raden som hentes.
src/proxy.ts frisker kun opp sesjonen. Selve tilgangskontrollen ligger i
adminlayouten og i hver enkelt server action – server actions kjører som POST
mot siden de brukes fra, og kan derfor ikke sikres av proxy alene.
Radsikkerheten i databasen slipper bare rollen admin til (er_admin(), fra
migrasjon 0011). Service og ansatte kan lese sin egen brukerrad og ingenting
annet – alt de gjør, går gjennom server actions som sjekker tilgangen selv.
Prosjektet kjører Next.js 16, som har flere brytende endringer mot 14/15:
middleware.ts heter nå proxy.tscookies(), params og searchParams er asynkrone og må ventes pårevalidateTag() krever nå to argumenter--turbopack-flagget skal ikke brukesSe AGENTS.md. Dokumentasjonen ligger lokalt i node_modules/next/dist/docs/.