Портал открытых данных города Тольятти — транспорт, культура, образование, спорт, здравоохранение, недвижимость и инфраструктура.
Статический сайт, сгенерированный Astro. Данные — из Google Sheets (или CSV-файлов для fallback), все страницы предварительно отрендерены на этапе сборки.
Скопируйте .env.example в .env и заполните:
cp .env.example .env- Включите Google Sheets API в Google Cloud Console
- Создайте API-ключ и укажите его в
GOOGLE_API - Создайте Google Spreadsheet с листами, названия которых совпадают с именами CSV-файлов (см.
categories.js) - Сделайте таблицу доступной для чтения всем, у кого есть ссылка
- ID таблицы (из URL) укажите в
GOOGLE_SPREADSHEET_ID
Без GOOGLE_SPREADSHEET_ID данные читаются из локальных CSV-файлов (директория example.csv/).
npm install
npm run devСборка для продакшна:
npm run build
npm run preview # просмотр собранного сайтаopentgl/
├── astro.config.mjs # Конфиг Astro (site, base для GitHub Pages)
├── src/
│ ├── layouts/Layout.astro # Базовый layout (SEO, хедер, герой, футер)
│ ├── components/
│ │ ├── Navbar.astro # Верхняя навигация
│ │ ├── NavStrip.astro # Стрип категорий
│ │ ├── DataTable.astro # Таблица с данными
│ │ └── Footer.astro # Подвал
│ ├── pages/
│ │ ├── index.astro # Главная
│ │ ├── about.astro # О сайте
│ │ └── category/
│ │ └── [category].astro # Страница категории
│ └── lib/
│ ├── parse-csv.js # Парсинг CSV (fallback)
│ ├── google-sheets.js # Google Sheets API
│ ├── categories.js # Категории
│ ├── column-map.js # Унификация названий столбцов
│ └── csv-data.js # Загрузка данных
├── public/
│ ├── favicon.svg
│ └── css/style.css
├── .github/workflows/
│ └── astro.yml # Деплой на GitHub Pages
| Маршрут | Описание |
|---|---|
/ |
Главная — карточки категорий |
/category/:cat |
Список записей категории |
/about |
О сайте |
| Категория | Файлов | Подкатегории |
|---|---|---|
| Транспорт | 3 | Автобусы, троллейбусы, коммерческие |
| Культура | 6 | Библиотеки, музеи, театры, досуг, наследие, особо ценные |
| Образование | 3 | Школы, дополнительное, дошкольное |
| Спорт | 3 | Бассейны, спортивные школы, физкультура |
| Здравоохранение | 1 | Учреждения здравоохранения |
| Социальная поддержка | 1 | Социальная поддержка |
| Достопримечательности | 1 | Знаковые места |
| Справочная | 2 | Сотрудники, организации |
| Недвижимость | 3 | Земельные участки, нежилые, строительство |
| Инфраструктура | 2 | Инженерные объекты, таксофоны |
Данные получены из открытых источников Администрации г.о. Тольятти. Распространяются по лицензии CC BY 4.0.
При сборке данные загружаются через Google Sheets API (по GOOGLE_SPREADSHEET_ID).
Если GOOGLE_SPREADSHEET_ID не задан — данные читаются из локальных CSV-файлов.
Astro — генерация статических страниц
Независимый проект, не связан с администрацией города Тольятти.