Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
An online booking page for beauty professionals: publish your hours and clients pick a time themselves — no account for them, no DMs for you. Access currently opens by request.
BusinessTypeScript · JavaScriptGitHub @lazybirdshop-starOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
SaaS-платформа онлайн-записи для мастеров индустрии красоты. Мастер получает страницу amolie.com/{slug}, публикует свободные окна и принимает записи; клиент записывается без регистрации, а после записи может завести кабинет — один список визитов ко всем мастерам на amolie.com/me. Статус: Phase 1 пройдена, кроме писем о записях (SMS упирается в регистрацию компании, см. ARCHITECTURE.md §8). В продакшене работает всё: веб на Vercel, API на Fly.io (amolie-api.fly.dev) с базой в Supabase. Что сделано и что осталось — ROADMAP.md, задачи — TASKS.md.Read the full README ↗
SaaS-платформа онлайн-записи для мастеров индустрии красоты. Мастер получает
страницу amolie.com/{slug}, публикует свободные окна и принимает записи; клиент
записывается без регистрации, а после записи может завести кабинет — один список
визитов ко всем мастерам на amolie.com/me.
Статус: Phase 1 пройдена, кроме писем о записях (SMS упирается в регистрацию
компании, см. ARCHITECTURE.md §8). В продакшене работает всё:
веб на Vercel, API на Fly.io (amolie-api.fly.dev) с базой в Supabase. Что
сделано и что осталось — ROADMAP.md, задачи — TASKS.md.
Деплой не автоматический по обе стороны по-разному. Пуш в main выкатывает
веб на Vercel сам; API на Fly требует ручного fly deploy, и порядок имеет
значение: сначала API (миграции применяются release-командой до старта нового
кода), потом пуш веба — иначе интерфейс обещает то, чего сервер ещё не умеет.
pnpm install
docker compose up -d # PostgreSQL и Redis
cp apps/api/.env.example apps/api/.env # заполнить DATABASE_URL, JWT_SECRET
pnpm --filter @amolie/api exec drizzle-kit migrate
pnpm dev # web :3000, api :3001
Если окружение поднималось до переименования в AMOLIE, база называлась beauty_lv, а
compose-проект — beauty-lv. API с новым DATABASE_URL такую базу не найдёт и упадёт;
внешне это выглядит как 500 на странице мастера и в кабинете.
Postgres поднят локально (не в Docker) — база переименовывается на месте, со всеми данными:
psql -h localhost -U postgres -d postgres -c 'ALTER DATABASE beauty_lv RENAME TO amolie;'
Postgres из docker compose — переименовать нельзя: POSTGRES_DB применяется только к
пустому тому. Новый контейнер поднимется с пустой базой amolie, ей нужны миграции и сид;
том beauty_lv_postgres со старыми данными остаётся на диске и удалять его не обязательно:
docker compose up -d
pnpm --filter @amolie/api exec drizzle-kit migrate
pnpm --filter @amolie/api db:seed # демо-данные
Показательные данные для ручной проверки кабинета — заполненный соло-мастер и салон с командой. Оба скрипта идемпотентны (пересобирают своё с нуля), печатают входы и получают новый пароль на каждый запуск; в продовом окружении не нужны:
pnpm --filter @amolie/api db:demo # соло-мастер Neve Ashgrove: услуги, клиенты, записи
pnpm --filter @amolie/api db:demo-salon # салон Lumen Studio: владелица, администратор, три мастера
Проверки перед коммитом — все четыре, они же в CI:
pnpm lint && pnpm typecheck && pnpm test && pnpm build
Монорепозиторий на pnpm workspaces + Turborepo.
| Пакет | Что это |
|---|---|
apps/web | Next.js (App Router): лендинг, публичная страница, кабинет мастера, кабинет клиента /me, админка |
apps/api | NestJS + Drizzle + PostgreSQL |
packages/shared-kernel | Доменные примитивы, общие для web и api: деньги, телефоны, слаги, темы, .ics |
Браузер никогда не обращается к API напрямую: клиентские компоненты ходят через
BFF-прокси /api/proxy, серверные — через serverApiFetch. Токен живёт в
httpOnly-cookie и в JavaScript не попадает.
Читать в этом порядке — от «зачем» к «как»:
| Документ | О чём |
|---|---|
| CONCEPT.md | Суть продукта за один проход — начинать отсюда |
| PRODUCT.md | Что это за продукт, для кого, чего в нём нет |
| PRD.md | Продуктовые требования |
| ROADMAP.md | Где мы сейчас и что дальше |
| TASKS.md | Задачи по эпикам со статусами |
| ARCHITECTURE.md | Стек, слои, защита от гонок, языки, что из стека реально подключено |
| DATABASE.md | Схема, индексы, миграции |
| API.md | Контракт: §6 описывает то, что действительно есть в коде |
| DESIGN_SYSTEM.md | Конституция визуального языка: принципы, токены, законы |
| UI_GUIDELINES.md | Дизайн-система кабинета и админки |
| DESIGN.md |
Флоу записи неприкосновенен. Порядок «услуги → допы → время → контакты» и подбор окон по суммарной длительности менять нельзя — переодевать визуально можно. Услуги идут раньше времени не по вкусу: длительность визита решает, какие окна вообще можно предложить.
Две темы публичной страницы правятся раздельно. Плакатная отвечает перед
скиллом impeccable, мягкая — перед ui-ux-pro-max; правка одной не переносится
на другую. Кабинет не принадлежит ни одной из них и судится по
UI_GUIDELINES.md. Подробности — DESIGN.md.
Аккаунт клиента и карточка клиента — разные вещи. users — человек на
платформе, один на всё; clients — его карточка в CRM конкретного мастера, с её
заметками и её историей, жёстко в границах организации. Смешать их значит
показать мастеру, что её клиент ходит ещё к кому-то, — или показать клиенту, как
он у неё записан. Ни того, ни другого продукт делать не должен.
| Публичная страница мастера: визуальные миры и кто ими владеет |
| BRAND_STYLES.md | Шесть фирменных стилей публичной страницы (вводятся) |
| DESIGN_STUDIO.md | Design Studio: визуальный редактор страницы с живым предпросмотром |
| DEPLOYMENT.md | Окружения и деплой |
| CHANGELOG.md | Что менялось и почему |
| CLAUDE.md | Правила разработки в этом репозитории |