No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Платформа для студентов AlmaU: учёба (расписание, оценки, посещаемость, задания, видеоуроки с мини-тестами, проктор-экзамены) и общение (анонимный чат, сообщения по ФИО, подбор компании на ивент, клубы, походы) в одном аккаунте, прямо в браузере. Плюс исходный Telegram-бот анонимного чата — он живёт отдельно и сайту не нужен.
Что есть на сайте:
Новое в этапе 2:
/stats, /ban, /unban.Новое в RK1 — бэкенд и хостинг:
bot/api.py + отдельная точка входа bot/api_server.py): сайт больше не просто
статика — он получает данные клубов/ивентов и живую статистику с сервера, кнопка «Иду»
на сайте и форма заявки реально сохраняют данные в БД. См. раздел API.Кто за что отвечает и как устроен код: docs/TEAM.md.
| Что | Ссылка |
|---|---|
| Сайт | https://almau-messenger.vercel.app |
| Бот | https://t.me/Almau_mes_bot |
| API (бэкенд) | https://almaumessanger-production.up.railway.app |
После деплоя сайта на Vercel обновите ссылку на сайт в этой таблице.
Горный клуб AlmaU — наш партнёр. Для него сделаны запись на походы с листом ожидания, напоминания,
рассылки, панель организатора /club, «Я спустился» и SOS, школа туризма, отчёт и страница на сайте.
Подробности и инструкция для организатора: docs/SUMMIT.md.
Организаторов добавляют в переменную CLUB_ADMIN_IDS.
bot/
main.py точка входа бота (polling); опционально поднимает и API в том же процессе — Дияр
config.py настройки из .env — Дияр, + RK1 (PORT, CORS_ORIGIN, ADMIN_TOKEN)
matchmaking.py очередь поиска, подбор по интересам и ивентам — Дияр
keyboards.py кнопки меню и диалога — Дияр
handlers/chat.py поиск, пересылка сообщений, Следующий/Стоп, /give — Дияр
db.py SQLite: профили, жалобы, баны, статистика, «Иду» — Абулхаир, + RK1 (заявки с сайта)
handlers/profile.py регистрация и профиль (вуз, курс, интересы, соцсети) — Абулхаир
handlers/moderation.py жалобы, автобан, /stats /ban /unban — Абулхаир, + RK1 (/leads)
api.py веб-API: /api/clubs, /api/events, /api/leads, /api/stats — RK1
api_server.py отдельная точка входа: только веб-API, без бота — RK1
content.py загрузка клубов и ивентов из site/data — Хамид
handlers/events.py афиша, «Иду», «Найти компанию», /clubs — Хамид
web_chat.py аккаунты сайта, вход, сброс пароля, анонимный и прямой чаты, жалобы
academics.py учёба: дисциплины, расписание, оценки, посещаемость, задания, уроки, экзамены
admin.py админ-панель: пользователи, роли, блокировки, жалобы, ключи, заявки
ratelimit.py лимиты частоты запросов (перебор паролей и кодов, спам)
site/
index.html разметка всех страниц сайта
css/app.css стили
js/core.js ядро: запросы к API, сессия, уведомления, маршрутизация, меню
js/public.js клубы, ивенты, партнёры, походы, заявки
js/auth.js вход, регистрация, сброс пароля
js/home.js главная-сводка
js/chat.js анонимный чат js/people.js сообщения
js/academics.js учёба (студент) js/teaching.js учёба (сотрудник)
js/exam.js прохождение экзамена js/profile.js профиль
js/admin.js админка js/main.js запуск
vercel.json заголовки безопасности сайта (CSP и др.)
data/clubs.json клубы — общие для сайта и бота — Хамид
data/events.json ивенты — общие для сайта и бота — Хамид
tests/ тесты всех частей, включая API (pytest)
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements-dev.txt
cp .env.example .env # вставить BOT_TOKEN от @BotFather и свой ADMIN_IDS
python -m bot.main
Бот и бэкенд (API) — два независимых сервиса с разными точками входа. Их можно деплоить
разными людьми, в разное время и даже на разные платформы — они не знают друг о друге
и общаются только через общий файл site/data/*.json с клубами/ивентами.
This is the beginning of the README. Read the rest at the original. Read the full README ↗