Campus Hub — веб-платформа на Next.js/React для студентов, преподавателей и администраторов: дашборды, оценки, расписание, сообщения и AI-функции.
- Раздельные интерфейсы для ролей:
student,teacher,admin - Управление пользователями, предметами, оценками и расписанием
- Сообщения и чаты
- Страница материалов и вложений
- API-роут для AI (
/api/gpt) - Поддержка светлой/тёмной темы
- Frontend: Next.js
- Backend: локальный
server.js - Полный рабочий CRUD и авторизация
- Если
NEXT_PUBLIC_API_URLне задан при Pages-сборке, включается демо-режим - Данные хранятся в
localStorageбраузера - Ошибка
405для/loginв этом режиме не возникает
- Фронтенд отправляет реальные запросы в ваш API
- Нужно задать
NEXT_PUBLIC_API_URL=https://<your-api>/api
npm install
npm run devПо умолчанию:
- приложение:
http://localhost:3000 - локальный API:
http://localhost:4000
Создайте .env.local:
# Frontend/API
NEXT_PUBLIC_API_URL=http://localhost:4000/api
NEXT_PUBLIC_BASE_PATH=/Campus_Hub
NEXT_PUBLIC_GITHUB_PAGES=false
# Интеграции
OPENAI_API_KEY=
OPENWEATHER_API_KEY=
NEWSAPI_KEY=
# Локальный API-сервер
PORT=4000
CORS_ORIGIN=*
MAX_UPLOAD_SIZE_MB=10admin@campushub.local / admin123teacher@campushub.local / teacher123student@campushub.local / student123
| Скрипт | Что делает |
|---|---|
npm run dev |
Запускает Next.js + локальный API |
npm run server |
Поднимает только локальный API |
npm run build |
Production-сборка |
npm run start |
Запуск собранного приложения |
npm run lint |
Проверки ESLint |
- Поднимите API-сервис на Render.
- Убедитесь, что доступны роуты вида
/api/login,/api/register, и т.д. - В GitHub Actions для Pages передайте:
NEXT_PUBLIC_API_URL=https://<your-render-domain>/api
- Перезапустите деплой Pages.
405 Method Not Allowed появляется, когда фронтенд пытается сделать POST /login на статический хостинг без API.
В этом репозитории это закрыто demo-режимом: без NEXT_PUBLIC_API_URL на Pages приложение уходит в браузерный fallback.
Campus_Hub/
src/
app/ # Страницы (App Router)
components/ # UI и бизнес-компоненты
hooks/ # React hooks
lib/
api.ts # Единый API слой + demo fallback
i18n.ts # Инициализация i18n
api/ # Legacy-обёртки для совместимости
server.js # Локальный API для разработки
db.json # Данные json-server
.github/workflows/
deploy-pages.yml # Деплой на GitHub Pages
ci.yml # CI-проверки
MIT


