mirror of
https://github.com/EDeev/yandex_lyceum.git
synced 2026-10-07 20:49:29 +03:00
README на русском и английском, скриншот
This commit is contained in:
parent
e892a11052
commit
8e0dca0207
4 changed files with 68 additions and 117 deletions
45
README.en.md
Normal file
45
README.en.md
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Yandex Lyceum
|
||||||
|
|
||||||
|
[Русский](README.md) · **English**
|
||||||
|
|
||||||
|
[](https://github.com/EDeev/yandex_lyceum/actions/workflows/ci.yml)
|
||||||
|
|
||||||
|
Solutions to the Yandex Lyceum web development course: Flask apps built around the "Mars colonization
|
||||||
|
mission" storyline, plus organization search via the Yandex Maps API.
|
||||||
|
|
||||||
|
**Status:** coursework (Yandex Lyceum, 2022), completed, archived
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Stack:** Python · Flask · Jinja2 · Flask-WTF · Bootstrap · Yandex Maps API · Pillow
|
||||||
|
|
||||||
|
| Folder | Contents |
|
||||||
|
|---|---|
|
||||||
|
| `01-flask-html` | Flask and Jinja2 pages: mission promo page, applicant form, planet choice, selection results, photo upload |
|
||||||
|
| `02-flask-wtf-forms` | Flask-WTF forms: sign-in, training by profession, list of professions, form auto-answer, cabin assignment |
|
||||||
|
| `03-yandex-maps-search` | finding the nearest organization via the Yandex organization search API and showing a map |
|
||||||
|
|
||||||
|
## Running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install -r requirements.txt
|
||||||
|
cd 01-flask-html && python server.py # http://127.0.0.1:8080
|
||||||
|
YANDEX_API_KEY=your_key python 03-yandex-maps-search/main.py
|
||||||
|
```
|
||||||
|
|
||||||
|
`03-yandex-maps-search` needs a Yandex organization search API key in `YANDEX_API_KEY`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Coursework (Yandex Lyceum, 2021/22). The code is open for study; there is no separate license.
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
**Egor Deev** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<sub>⭐ If you find this project useful, give it a star on GitHub!</sub>
|
||||||
|
<p><sub>Made with ❤️ — <a href="https://deev.space">deev.space</a></sub></p>
|
||||||
|
</div>
|
||||||
140
README.md
140
README.md
|
|
@ -1,139 +1,45 @@
|
||||||
# Yandex Lyceum Projects 🚀
|
# Yandex Lyceum
|
||||||
|
|
||||||
> Коллекция веб-приложений разработанных в рамках образовательной программы Яндекс Лицея
|
**Русский** · [English](README.en.md)
|
||||||
|
|
||||||
## 📋 Описание проекта
|
[](https://github.com/EDeev/yandex_lyceum/actions/workflows/ci.yml)
|
||||||
|
|
||||||
Репозиторий содержит комплекс учебных проектов, демонстрирующих эволюцию навыков веб-разработки от базовых HTML-страниц до полнофункциональных Flask-приложений с интеграцией внешних API.
|
Решения задач курса веб-разработки Яндекс Лицея: Flask-приложения по сюжету «Миссия колонизации Марса»
|
||||||
|
и поиск организаций через API Яндекс.Карт.
|
||||||
|
|
||||||
## 🏗️ Архитектура решений
|
**Статус:** учебный проект (Яндекс Лицей, 2022), завершён, в архиве
|
||||||
|
|
||||||
### Модули проекта:
|

|
||||||
|
|
||||||
#### 1. **WEB.HTML** - Базовая веб-разработка
|
**Стек:** Python · Flask · Jinja2 · Flask-WTF · Bootstrap · API Яндекс.Карт · Pillow
|
||||||
- Статические HTML-страницы с CSS-стилизацией
|
|
||||||
- Обработка форм и файловых загрузок
|
|
||||||
- Маршрутизация и шаблонизация
|
|
||||||
|
|
||||||
#### 2. **WEB.HTML 2** - Продвинутая веб-архитектура
|
| Папка | Что внутри |
|
||||||
- Flask-приложение с расширенной функциональностью
|
|---|---|
|
||||||
- Интеграция Bootstrap для адаптивного дизайна
|
| `01-flask-html` | страницы на Flask и Jinja2: рекламная страница миссии, анкета претендента, выбор планеты, результаты отбора, загрузка фото |
|
||||||
- Система аутентификации и авторизации
|
| `02-flask-wtf-forms` | формы на Flask-WTF: вход, тренажёры по профессиям, список профессий, автоответ анкеты, распределение по каютам |
|
||||||
|
| `03-yandex-maps-search` | поиск ближайшей организации через API поиска по организациям и показ карты |
|
||||||
|
|
||||||
#### 3. **WEB.HTML flask-wtf** - Профессиональные веб-формы
|
## Запуск
|
||||||
- Валидация пользовательского ввода
|
|
||||||
- CSRF-защита
|
|
||||||
- Обработка сложных форм с множественными полями
|
|
||||||
|
|
||||||
#### 4. **Полный поиск** - Геоинформационные сервисы
|
|
||||||
- Интеграция с Yandex Maps API
|
|
||||||
- Алгоритмы геопозиционирования
|
|
||||||
- Динамическое построение карт
|
|
||||||
|
|
||||||
## 🛠️ Технологический стек
|
|
||||||
|
|
||||||
```
|
|
||||||
Backend: Flask 2.0+, Python 3.8+
|
|
||||||
Frontend: HTML5, CSS3, Bootstrap 5.1.3
|
|
||||||
Forms: Flask-WTF, WTForms
|
|
||||||
APIs: Yandex Maps Search API
|
|
||||||
Libraries: Pillow, Requests, Jinja2
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🚀 Быстрый старт
|
|
||||||
|
|
||||||
### Установка зависимостей
|
|
||||||
```bash
|
```bash
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
cd 01-flask-html && python server.py # http://127.0.0.1:8080
|
||||||
|
YANDEX_API_KEY=ваш_ключ python 03-yandex-maps-search/main.py
|
||||||
```
|
```
|
||||||
|
|
||||||
### Запуск приложений
|
Для `03-yandex-maps-search` нужен ключ API поиска по организациям Яндекса в переменной `YANDEX_API_KEY`.
|
||||||
```bash
|
|
||||||
# Базовое HTML-приложение
|
|
||||||
cd "WEB.HTML"
|
|
||||||
python server.py
|
|
||||||
|
|
||||||
# Flask-приложение с шаблонами
|
## Лицензия
|
||||||
cd "WEB.HTML 2"
|
|
||||||
python server.py
|
|
||||||
|
|
||||||
# Приложение с формами
|
Учебный проект (Яндекс Лицей, 2021/22). Код открыт для изучения, отдельной лицензии нет.
|
||||||
cd "WEB.HTML flask-wtf"
|
|
||||||
python server.py
|
|
||||||
```
|
|
||||||
|
|
||||||
### Конфигурация API
|
## Автор
|
||||||
Для работы геосервисов необходимо настроить API-ключ в `main.py`:
|
|
||||||
```python
|
|
||||||
api_key = "your_yandex_api_key_here"
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📁 Структура проекта
|
**Деев Егор Викторович** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space)
|
||||||
|
|
||||||
```
|
|
||||||
yandex_lyceum/
|
|
||||||
├── WEB.HTML/ # Базовые веб-технологии
|
|
||||||
│ ├── server.py # Flask-сервер
|
|
||||||
│ ├── static/ # Статические ресурсы
|
|
||||||
│ └── templates/ # HTML-шаблоны
|
|
||||||
├── WEB.HTML 2/ # Расширенная веб-архитектура
|
|
||||||
│ ├── server.py
|
|
||||||
│ ├── loginform.py # Формы авторизации
|
|
||||||
│ └── templates/
|
|
||||||
├── WEB.HTML flask-wtf/ # Профессиональные формы
|
|
||||||
└── Полный поиск/ # Геоинформационные сервисы
|
|
||||||
├── main.py # Основная логика
|
|
||||||
└── delta.py # Вспомогательные алгоритмы
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🎯 Функциональные возможности
|
|
||||||
|
|
||||||
### Веб-интерфейсы:
|
|
||||||
- **Космическая тематика:** Интерактивные страницы миссии колонизации Марса
|
|
||||||
- **Система профессий:** Каталогизация и фильтрация специальностей
|
|
||||||
- **Анкетирование:** Комплексные формы с валидацией данных
|
|
||||||
- **Аутентификация:** Многоуровневая система доступа
|
|
||||||
|
|
||||||
### Геосервисы:
|
|
||||||
- **Поиск объектов:** Интеграция с Yandex Search API
|
|
||||||
- **Картографирование:** Динамическое построение карт
|
|
||||||
- **Геопозиционирование:** Алгоритмы расчета координат
|
|
||||||
|
|
||||||
## 🔧 Конфигурация
|
|
||||||
|
|
||||||
### Переменные окружения:
|
|
||||||
```bash
|
|
||||||
FLASK_ENV=development
|
|
||||||
SECRET_KEY=yandexlyceum_secret_key
|
|
||||||
YANDEX_API_KEY=your_api_key
|
|
||||||
```
|
|
||||||
|
|
||||||
### Порты по умолчанию:
|
|
||||||
- **Flask-приложения:** `127.0.0.1:8080`
|
|
||||||
- **Статические файлы:** автоматическая маршрутизация
|
|
||||||
|
|
||||||
## 🏆 Образовательные цели
|
|
||||||
|
|
||||||
Проект демонстрирует прогрессивное освоение:
|
|
||||||
- Фундаментальных веб-технологий
|
|
||||||
- Серверной архитектуры Flask
|
|
||||||
- Интеграции внешних API
|
|
||||||
- Профессиональных практик разработки
|
|
||||||
|
|
||||||
## 📄 Лицензия
|
|
||||||
|
|
||||||
Образовательный проект в рамках программы Яндекс Лицея
|
|
||||||
|
|
||||||
## 👨💻 Автор
|
|
||||||
|
|
||||||
**Деев Егор Викторович** - Backend Developer
|
|
||||||
- GitHub: [@EDeev](https://github.com/EDeev)
|
|
||||||
- Email: egor@deev.space
|
|
||||||
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<sub>Разработано в рамках образовательной программы Яндекс Лицея для демонстрации навыков полного цикла веб-разработки</sub>
|
<sub>⭐ Если проект оказался полезным, поставьте звёздочку на GitHub!</sub>
|
||||||
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
|
<p><sub>Сделано с ❤️ — <a href="https://deev.space">deev.space</a></sub></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
BIN
docs/screenshots/astronaut.png
Normal file
BIN
docs/screenshots/astronaut.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
BIN
docs/screenshots/promotion.png
Normal file
BIN
docs/screenshots/promotion.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 346 KiB |
Loading…
Add table
Reference in a new issue