Skip to content

Repository files navigation

Salary Tracker

Salary Tracker — приватное веб-приложение для отслеживания зарплаты, отработанных часов и детального анализа доходов.

Приложение развернуто на Vercel и подключено к Supabase (PostgreSQL), данные надежно изолированы и защищены встроенной аутентификацией и Row Level Security (RLS).


🔒 Безопасность для одного пользователя

  1. Аутентификация (Supabase Auth):

    • Экран входа и регистрации (AuthScreen).
    • Автоматическое сохранение сессии и токенов в браузере.
    • Возможность безопасного выхода (кнопка Sign Out в шапке).
  2. Защита базы данных (Row Level Security):

    • Все таблицы (jobs, entries) защищены политиками RLS: доступ на чтение, запись и удаление есть только у владельца записи (auth.uid() = user_id).
    • SQL-скрипт настройки доступен в файле supabase_setup.sql.
  3. Защита хостинга (Vercel Security Headers):

    • В vercel.json включены заголовки X-Robots-Tag: noindex, nofollow, блокирующие индексацию сайта поисковиками.
    • Защита от clickjacking (X-Frame-Options: DENY), sniffing (nosniff) и строгая политика Referrer-Policy.

🚀 Настройка и развертывание

1. Настройка базы данных в Supabase

  1. Откройте ваш проект на supabase.com.
  2. Перейдите в SQL Editor -> New Query.
  3. Скопируйте содержимое файла supabase_setup.sql и нажмите Run.
  4. После регистрации вашей первой учетной записи перейдите в:
    • Authentication -> Providers -> Email
    • Выключите пункт "Allow new users to sign up" (запретить регистрацию новых пользователей). Теперь войти сможете только вы!

2. Настройка переменных в Vercel

В панели Vercel: Project Settings -> Environment Variables:

Variable Name Description
SUPABASE_URL URL вашего проекта Supabase (https://xxxx.supabase.co)
SUPABASE_ANON_KEY Публичный anon-ключ проекта Supabase

После добавления переменных сделайте Redeploy.

3. Локальный запуск

# Установка зависимостей
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).

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages