Приложение для управления таксопарком: админ-панель + мобильное приложение для водителей.
├── admin-panel/ # Веб-панель администратора
│ ├── index.html # Главная страница
│ ├── css/style.css # Стили
│ └── js/ # JavaScript модули
│ ├── config.js # Firebase конфигурация
│ ├── auth.js # Авторизация
│ ├── drivers.js # Управление водителями
│ ├── waybills.js # Путевые листы
│ ├── settings.js # Настройки компании
│ └── app.js # Главный модуль
├── mobile-app/ # Flutter мобильное приложение
│ ├── lib/ # Исходный код
│ │ ├── main.dart # Точка входа
│ │ ├── screens/ # Экраны
│ │ └── services/ # Сервисы (PDF генерация)
│ └── android/ # Android конфигурация
├── firebase/ # Firebase правила и индексы
├── .github/workflows/ # GitHub Actions (сборка APK)
└── .firebaserc # Firebase проект
- Авторизация администратора
- Регистрация новых водителей (создание аккаунта + профиля)
- Управление водителями (активация/деактивация/удаление)
- Просмотр путевых листов
- Настройки компании
- Вход водителя по email/паролю
- Просмотр профиля
- Генерация путевого листа (PDF)
- История путевых листов
- Frontend: HTML/CSS/JS + Firebase SDK
- Mobile: Flutter + Firebase
- Backend: Firebase (Firestore + Authentication)
- Hosting: Cloudflare Pages (админ-панель)
- CI/CD: GitHub Actions (сборка APK)
Хостится на Cloudflare Pages: https://taxopark-admin.pages.dev/
Собирается автоматически через GitHub Actions при пуше в main. Скачать APK можно в разделе Releases.
- Firestore Database → создать (если ещё не создан)
- Authentication → Sign-in method:
- Включить Email/Password (используется и админом, и водителями)
- Phone Auth больше не нужен
- Authentication → Users → Add user — создать первого администратора:
- Email:
<цифры_номера>@asempro.adminПример: телефон+7 915 395-53-83→ email79153955383@asempro.admin - Password: любой ≥ 6 символов (это пароль для входа в админку)
- Скопировать UID созданного пользователя
- Email:
- Firestore → Data → коллекция
admins, документ с ID = UID администратора:admins/<UID> = { phone: "+79153955383", role: "admin", createdAt: <timestamp> } - Firestore → Rules → загрузить правила из
firebase/firestore.rules - Открыть админ-панель https://taxopark-admin.pages.dev/ и войти:
- Номер телефона:
+7 915 395-53-83 - Пароль: тот, что задавали на шаге 3
- Номер телефона:
- Заполнить настройки компании по умолчанию (раздел «Настройки»)
- Регистрировать водителей — пароль по умолчанию = последние 6 цифр номера
- Логин в приложении: номер телефона (любой формат:
+7...,8...,7...) - Пароль: задаётся администратором при регистрации
- Под капотом используется Firebase Email Auth с синтетическим email вида
<digits>@asempro.driver(водитель этого не видит)
При нажатии «Сбросить пароль» или «Удалить водителя» в админ-панели создаётся
запись в коллекции passwordResets / driverDeletions. Эти операции пока
обрабатываются вручную через Firebase Console (раздел Authentication → Users)
до тех пор, пока не будет развёрнута Cloud Function для автоматизации.