Тестовое задание на позицию Python-разработчика в Effective Mobile https://em.demo.overklassniy.space
  • Python 58.6%
  • HTML 24.3%
  • TypeScript 14.2%
  • CSS 2.5%
  • Dockerfile 0.4%
Find a file
2026-06-12 21:15:18 +03:00
app Исправлена ошибка синтаксиса Jinja2 в dashboard.html 2026-06-12 21:10:00 +03:00
docs Начальный коммит 2026-06-12 20:54:40 +03:00
scripts Начальный коммит 2026-06-12 20:54:40 +03:00
.env.example Начальный коммит 2026-06-12 20:54:40 +03:00
.gitignore Начальный коммит 2026-06-12 20:54:40 +03:00
docker-compose.yml Начальный коммит 2026-06-12 20:54:40 +03:00
Dockerfile Начальный коммит 2026-06-12 20:54:40 +03:00
nginx.conf Начальный коммит 2026-06-12 20:54:40 +03:00
package-lock.json Начальный коммит 2026-06-12 20:54:40 +03:00
package.json Начальный коммит 2026-06-12 20:54:40 +03:00
README.md Добавлены данные администратора в демо проде 2026-06-12 21:15:18 +03:00
requirements.txt Начальный коммит 2026-06-12 20:54:40 +03:00
tsconfig.json Начальный коммит 2026-06-12 20:54:40 +03:00

Effective Mobile Python

Тестовое задание на позицию Python-разработчика в Effective Mobile. Асинхронное веб-приложение на базе FastAPI и SQLAlchemy для управления пользователями, товарами и заказами с гибкой ролевой системой прав доступа.

Демо-сервер и документация


Документация проекта

Чтобы получить подробную информацию о внутреннем устройстве системы, изучите следующие разделы:


Запуск проекта

1. Подготовка базы данных в PostgreSQL

Перед запуском приложения необходимо создать пользователя и базу данных в PostgreSQL:

CREATE USER em_user WITH PASSWORD 'em_pass';
CREATE DATABASE em_auth OWNER em_user;
GRANT ALL PRIVILEGES ON DATABASE em_auth TO em_user;

2. Установка зависимостей Python и настройка виртуального окружения

Настройка виртуального окружения:

python -m venv .venv
source .venv/bin/activate  # Для Linux/macOS
.venv\Scripts\activate     # Для Windows

pip install -r requirements.txt

Создание файла секретов .env в корневой директории проекта:

DATABASE_URL=postgresql+asyncpg://em_user:em_pass@localhost/em_auth
SECRET_KEY=secret

3. Инициализация таблиц базы данных

Создание таблиц в базе данных выполняется вручную с помощью скрипта инициализации:

python scripts/init_db.py

Примечание: скрипт создаст структуру таблиц согласно SQLAlchemy моделям. При первом запуске веб-приложения сработает автозаполнение базы данных стандартными ролями, ресурсами и администратором.

4. Запуск сервера

Запуск сервера разработки:

python -m uvicorn app.main:app --reload --port 8000

После запуска локально:

5. Установка зависимостей Node.js и компиляция TypeScript

Фронтенд скрипты написаны на TypeScript и должны быть скомпилированы в JavaScript перед использованием:

npm install
npx tsc