Salary Tracker — приватное веб-приложение для отслеживания зарплаты, отработанных часов и детального анализа доходов.
Приложение развернуто на Vercel и подключено к Supabase (PostgreSQL), данные надежно изолированы и защищены встроенной аутентификацией и Row Level Security (RLS).
-
Аутентификация (Supabase Auth):
- Экран входа и регистрации (
AuthScreen). - Автоматическое сохранение сессии и токенов в браузере.
- Возможность безопасного выхода (кнопка
Sign Outв шапке).
- Экран входа и регистрации (
-
Защита базы данных (Row Level Security):
- Все таблицы (
jobs,entries) защищены политиками RLS: доступ на чтение, запись и удаление есть только у владельца записи (auth.uid() = user_id). - SQL-скрипт настройки доступен в файле
supabase_setup.sql.
- Все таблицы (
-
Защита хостинга (Vercel Security Headers):
- В
vercel.jsonвключены заголовкиX-Robots-Tag: noindex, nofollow, блокирующие индексацию сайта поисковиками. - Защита от clickjacking (
X-Frame-Options: DENY), sniffing (nosniff) и строгая политикаReferrer-Policy.
- В
- Откройте ваш проект на supabase.com.
- Перейдите в SQL Editor -> New Query.
- Скопируйте содержимое файла
supabase_setup.sqlи нажмите Run. - После регистрации вашей первой учетной записи перейдите в:
- Authentication -> Providers -> Email
- Выключите пункт "Allow new users to sign up" (запретить регистрацию новых пользователей). Теперь войти сможете только вы!
В панели Vercel: Project Settings -> Environment Variables:
| Variable Name | Description |
|---|---|
SUPABASE_URL |
URL вашего проекта Supabase (https://xxxx.supabase.co) |
SUPABASE_ANON_KEY |
Публичный anon-ключ проекта Supabase |
После добавления переменных сделайте Redeploy.
# Установка зависимостей
npm install
# Сборка проекта
npm run build
# Проверка типов
npm run typecheckДля локальной работы создайте config.js (на основе config.example.js) и откройте dist/index.html через локальный веб-сервер.
- Frontend: TypeScript, Vanilla JS/CSS (CSS Custom Properties, Glassmorphism, Dark/Light Themes), Chart.js, Lottie-web.
- Backend / Database: Supabase (PostgreSQL, Supabase Auth, Row Level Security).
- Hosting: Vercel (Edge static hosting + Serverless API).