{"id":28473405,"url":"https://github.com/bomjkee/hackathonapp","last_synced_at":"2025-07-02T07:31:28.169Z","repository":{"id":259432695,"uuid":"767562676","full_name":"bomjkee/HackathonApp","owner":"bomjkee","description":"Backend часть приложения HackathonMiniApp, написанная на асинхронном фреймворке FastAPI + Aiogram + Redis + PostgreSQL + SQLAlchemy с валидацией от Pydantic  ","archived":false,"fork":false,"pushed_at":"2025-04-08T16:04:14.000Z","size":3317,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-07T12:07:06.002Z","etag":null,"topics":["aiogram","docker","docker-compose","fastapi","postgresql","pydantic","redis","sqlalchemy","telegram-bot","telegram-mini-app"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bomjkee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-05T14:17:55.000Z","updated_at":"2025-04-08T16:04:18.000Z","dependencies_parsed_at":"2024-10-25T10:34:53.127Z","dependency_job_id":"08f504b7-4563-44c5-978e-95fd75d8cb32","html_url":"https://github.com/bomjkee/HackathonApp","commit_stats":null,"previous_names":["bomjkee/hackathonapp"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/bomjkee/HackathonApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomjkee%2FHackathonApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomjkee%2FHackathonApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomjkee%2FHackathonApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomjkee%2FHackathonApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bomjkee","download_url":"https://codeload.github.com/bomjkee/HackathonApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomjkee%2FHackathonApp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263093730,"owners_count":23412869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiogram","docker","docker-compose","fastapi","postgresql","pydantic","redis","sqlalchemy","telegram-bot","telegram-mini-app"],"created_at":"2025-06-07T12:07:06.777Z","updated_at":"2025-07-02T07:31:28.161Z","avatar_url":"https://github.com/bomjkee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hackathon MiniApp Backend\n\nБэкенд часть приложения для регистрации и управления хакатонами РТУ МИРЭА. Проект реализован с использованием FastAPI и aiogram.\n\n## 🚀 Возможности\n\n- Управление хакатонами (создание, редактирование, удаление)\n- Регистрация и управление командами\n- Система приглашений участников\n- Кэширование данных с использованием Redis\n- Административная панель в Telegram\n- Интеграция с PostgreSQL для хранения данных\n\n## 🛠 Технологический стек\n\n- **Backend Framework**: FastAPI\n- **Telegram Bot**: aiogram 3.x\n- **База данных**: PostgreSQL\n- **Кэширование**: Redis\n- **Аутентификация**: Telegram \n- **Документация**: Swagger/OpenAPI\n- **Логирование**: loguru\n- **Тестирование**: pytest\n\n## 📋 Требования\n\n- Python 3.12+\n- PostgreSQL 15+\n- Redis 7+\n\n## 🚀 Установка и запуск\n\n1. Клонируйте репозиторий:\n```bash\ngit clone https://github.com/your-username/HackathonMiniApp.git\ncd HackathonMiniApp\n```\n\n2. Установите зависимости:\n```bash\npoetry install\n```\n\n3. Создайте файл `.env` в корневой директории и заполните его :\n```env\nDATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/hackathon_db\nREDIS_URL=redis://localhost:6379/0\nBOT_TOKEN=your_telegram_bot_token\nADMIN_IDS=123456789,987654321  # ID администраторов через запятую\n```\n\n4. Примените миграции:\n```bash\nalembic upgrade head\n```\n\n5. Запустите приложение:\n```bash\nuvicorn app.main:app --reload\n```\n\n## 📚 Структура проекта\n\n```\nHackathonMiniApp/\n├── app/\n│   ├── api/              # API эндпоинты\n│   ├── bot/             # Telegram бот\n│   ├── db/              # Работа с базой данных\n│   ├── redis/           # Redis операции\n│   └── main.py          # Точка входа\n├── migrations/          # Миграции базы данных\n├── tests/              # Тесты\n├── alembic.ini         # Конфигурация Alembic\n├── pyproject.toml      # Зависимости проекта\n└── README.md           # Документация\n```\n\n## 🔐 Аутентификация и авторизация\n\n- Администраторы определяются по их Telegram ID\n- Telegram init data для API аутентификации\n- Роли пользователей: администратор, лидер команды, участник\n\n## 📊 База данных\n\nОсновные сущности:\n- Хакатоны\n- Команды\n- Пользователи\n- Приглашения\n- Уведомления\n\n## 🔄 Redis кэширование\n\nИспользуется для:\n- Кэширования данных хакатонов\n- Хранения временных данных приглашений\n- Управления состоянием бота\n\n## 📝 API документация\n\nПосле запуска приложения документация доступна по адресу:\n- Swagger UI: `http://localhost:8000/docs`\n- ReDoc: `http://localhost:8000/redoc`\n\n## 🧪 Тестирование\n\n```bash\npytest tests/\n```\n\n## 🤝 Вклад в проект\n\n1. Форкните репозиторий\n2. Создайте ветку для новой фичи (`git checkout -b feature/amazing-feature`)\n3. Закоммитьте изменения (`git commit -m 'Add some amazing feature'`)\n4. Запушьте ветку (`git push origin feature/amazing-feature`)\n5. Откройте Pull Request\n\n## 📄 Лицензия\n\nMIT License - смотрите файл [LICENSE](LICENSE) для подробностей\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbomjkee%2Fhackathonapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbomjkee%2Fhackathonapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbomjkee%2Fhackathonapp/lists"}