An open API service indexing awesome lists of open source software.

https://github.com/andmerk93/django-uptrader


https://github.com/andmerk93/django-uptrader

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# django-uptrader

## Описание

Проект на чистом Django и стандартной библиотеке Python, сделан в качестве тестового задания в 2024.

Проект состоит из двух Django-приложений.

`Main` - django-app, который реализовывает древовидное меню, соблюдая следующие условия:
1) Меню реализовано через `template tag`
2) Все, что над выделенным пунктом - развернуто. Первый уровень вложенности под выделенным пунктом тоже развернут.
3) Хранится в БД.
4) Редактируется в стандартной админке Django
5) Активный пункт меню определяется исходя из URL текущей страницы
6) Меню на одной странице может быть несколько. Они определяются по названию.
7) При клике на меню происходит переход по заданному в нем URL. URL может быть задан как явным образом, так и через named url.
8) На отрисовку каждого меню требуется ровно 1 запрос к БД

`Update` - django-app, который позволяет вносить в БД меню (одно или несколько) через админку, и нарисовать на любой нужной странице меню по названию.
```{% draw_menu 'main_menu' %}```

UPD: Проект недоделан, и доделан, скорее всего не будет.

## Требования:
- Python 3
- Django 5
- и их зависимости

Указаны минимально требуемые версии, однако, сервис работает и с актуальными (возникают проблемы с автотестами).

## Установка на тестовом стенде:

На машине должен быть установлен Python актуальной версии (тестировалось на 3.11)

Клонировать репозиторий на машину, с которой будет будет запускаться сервис (либо по SSH-ссылке, либо скопировать и распаковать zip-архив)

```
git clone https://github.com/andmerk93/django-uptrader.git
```

Перейти в директорию с проектом

```
cd django-uptrader
```

Развернуть виртуальное окружение python в папке с проектом (django-uptrader)

```
python -m venv venv
```

Активировать виртуальное окружение.

Для linux/unix:

```
source ./venv/bin/activate
```

Для Windows, должно быть разрешено выполнение скриптов Powershell:

```
venv\Scripts\activate
```

Установить Django и заввисимости (тестировалось на Django 5):

```
pip install Django
```

Перейти в папку ./uptrader
```
cd ./uptrader
```

Дальнейшие команды будут выполняться отсюда

Создать необходимые таблицы в базе данных (нет необходимости делать makemigrations, описания миграций добавлены в репозиторий):

```
python manage.py migrate
```

Запустить проект:

```
py manage.py runserver 80
```

Тестовый сервер должен запуститься, и быть доступен по http://localhost/
Остановка сервера выполняется по Ctrl+C

Для теста панели администратора нужно создать пользователя с правами администратора и следовать инструкциям в консоли.

```
py manage.py createsuperuser
```

Панель администратора будет доступна по http://localhost/admin/