{"id":51038315,"url":"https://github.com/woookle/py_challenge","last_synced_at":"2026-06-22T08:32:29.446Z","repository":{"id":275005302,"uuid":"924771399","full_name":"woookle/py_challenge","owner":"woookle","description":"Py Challenge — это платформа для любителей программирования на Python, где можно решать задачи, соревноваться с другими пользователями и отслеживать свой прогресс","archived":false,"fork":false,"pushed_at":"2025-04-21T18:23:08.000Z","size":1641,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-21T19:33:03.839Z","etag":null,"topics":["express","material-ui","mongoose","python","vite-react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/woookle.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":"2025-01-30T16:17:02.000Z","updated_at":"2025-04-21T18:23:12.000Z","dependencies_parsed_at":"2025-01-30T17:30:33.496Z","dependency_job_id":"3d604f1f-b6ec-4771-ad8a-cc12f78c708d","html_url":"https://github.com/woookle/py_challenge","commit_stats":null,"previous_names":["woookle/py_challenge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/woookle/py_challenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woookle%2Fpy_challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woookle%2Fpy_challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woookle%2Fpy_challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woookle%2Fpy_challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woookle","download_url":"https://codeload.github.com/woookle/py_challenge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woookle%2Fpy_challenge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34641636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["express","material-ui","mongoose","python","vite-react"],"created_at":"2026-06-22T08:32:26.787Z","updated_at":"2026-06-22T08:32:29.440Z","avatar_url":"https://github.com/woookle.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🇷🇺 Py Challenge\n\n**🐍 Py Challenge** — это платформа для любителей программирования на Python, где можно решать задачи, соревноваться с другими пользователями и отслеживать свой прогресс. 🎯\n\n---\n\n## 🔧 Технологический стек\n\n### 🛠 Backend\n- **bcrypt** 🔒: Для хэширования паролей и обеспечения безопасности.\n- **cookie-parser** 🍪: Для работы с cookies.\n- **cors** 🌐: Для обработки кросс-доменных запросов.\n- **dotenv** 🔑: Для управления переменными окружения.\n- **express** 🚂: Фреймворк для создания сервера.\n- **express-validator** ✅: Для валидации данных.\n- **jsonwebtoken** 🔐: Для аутентификации через JWT.\n- **mongoose** 🦉: Для работы с MongoDB.\n- **multer** 📤: Для обработки загрузки файлов.\n- **python-shell** 🐍: Для запуска Python-кода.\n- **uuid** 🆔: Для генерации уникальных идентификаторов.\n\n### 🎨 Frontend\n- **@codemirror/lang-python** ✨: Поддержка Python в редакторе кода.\n- **@emotion/react** 🎭: Для стилизации компонентов.\n- **@emotion/styled** 🎨: Для создания стилизованных компонентов.\n- **@mui/icons-material** 🖼: Иконки от Material-UI.\n- **@mui/material** 🧩: Компоненты Material-UI.\n- **@reduxjs/toolkit** 🧰: Для управления состоянием приложения.\n- **@uiw/react-codemirror** 📝: Редактор кода.\n- **axios** 📡: Для HTTP-запросов.\n- **react** ⚛️: Библиотека для создания пользовательских интерфейсов.\n- **react-dom** 🌍: Для рендеринга React-компонентов.\n- **react-redux** 🔄: Для интеграции Redux с React.\n- **react-router-dom** 🛣: Для маршрутизации в приложении.\n- **react-spinners** ⏳: Для отображения индикаторов загрузки.\n- **react-toastify** 🍞: Для уведомлений.\n\n---\n\n## 🛠 Функционал\n\n### 👤 Пользователь\n- **Регистрация** 📝: Пользователь может зарегистрироваться на платформе.\n- **Авторизация** 🔑: Пользователь может войти в свой аккаунт.\n- **Просмотр заданий** 📚: Пользователь может просматривать доступные задания.\n- **Выполнение заданий** 🧠: Пользователь может попробовать решить задание.\n- **Профиль** 👤: Пользователь может просматривать свой профиль и статистику.\n- **Профили других пользователей** 👥: Пользователь может просматривать профили других участников.\n\n---\n\n## ⚙️ ENV\n**Создайте файл `.env` на основе `.env.example` и добавьте необходимые переменные окружения:**  \n   ```env\n   MONGO_URI=mongodb://localhost:27017/py_challenge\n   PORT=your_port\n   VITE_API_PORT=your_api_port\n   JWT_SECRET=your_secret\n   ```\n\n---\n\n## 🚀 Запуск проекта\n\n### 👾 Backend\n1. Перейдите в директорию /backend\n    ```bash\n    cd backend\n    ```\n2. Установите зависимости:  \n   ```bash\n   npm install\n   ```\n3. Запустите сервер:  \n   ```bash\n   npm run dev\n   ```\n\n### ✨ Frontend\n1. Установите зависимости:  \n   ```bash\n   npm install\n   ```\n2. Запустите приложение:  \n   ```bash\n   npm run dev\n   ```\n\n---\n\n\u003cbr /\u003e\n\n\u003cdiv\u003e\n  \u003cp align='center'\u003e\n    \u003cimg src='https://media1.tenor.com/m/oKZVauJ1LWEAAAAd/anime-fern.gif' /\u003e\n  \u003c/p\u003e\n  \u003ch2 align='center'\u003eᴛʜᴀɴᴋs ᴀɴᴅ ʜᴀᴠᴇ ᴀ ɴɪᴄᴇ ᴅᴀʏ 😊\u003c/h2\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoookle%2Fpy_challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoookle%2Fpy_challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoookle%2Fpy_challenge/lists"}