Pull to refresh

AMP: шаблон личного кабинета на базе FastAPI

Reading time2 min
Views8.2K
AMP desktop view

Опубликовал в публичном доступе свой маленький проект AMP. AMP — это шаблон «админки» на базе FastAPI. В качестве ORM использую peewee, в шаблонах bootstrap и графическую библиотеку C3(на базе D4). В AMP существует механизм авторизации пользователей (это ж админка), группы пользователей, локализация (английский и русский языки), установка часовых поясов. В статье покажу Вам, как это выглядит с экрана десктопа, мобильного устройства, небольшое демо(видео), дам ссылку на репозиторий, ну и конечно отвечу на вопрос «К чему нам еще одна админка ?».

Читать далее…

AMP mobile view

К чему нам еще одна админка?


Почти каждый разработчик, независимо от стека, со временем «собирает» свой любимый набор инструментов и оттачивает навыки по работе с ними. Это могут быть как любимые и хорошо известные (разработчику) графические библиотеки, так и наборы скриптов, что угодно. И я не исключение. Очень много времени провел в поисках своеобразного «персонального грааля», микрофреймворка или шаблона, который бы удовлетворял моим следующим требованиям:

  • компактный размер. (проект занимает 6.5МБ, причем половина объема — это js библиотеки);
  • лаконичное описание. FastAPI+Jinja2 под это почти идеально подходит;
  • автодокументирование;
  • нормальное отображение как с десктопа так и на экранах мобильных устройств;
  • бесплатная графическая библиотека, в которой существует не только большое разнообразие красивых графиков, но например «из коробки» существует возможность периодически самостоятельно забирать JSON-ы и их же отрисовывать;
  • компактный внешний вид. Все вспомогательные элементы (заголовки, кнопки, менюшки и т.п.) должны занимать минимум рабочего пространства экрана;

Не подобрав ничего подходящего, решил написать «свой велосипед», причем с акцентом на максимальную простоту кода и описание моделей (поэтому и использовал peewee). И, как итог, решил сделать свой проект публичным, т.к. являюсь сторонником выражения «добро порождает добро» или «opensource порождает opensource» :)

Вот демка, как это выглядит (надо нажать на картинку).

AMP demo

Допущенные вольности.


  1. В угоду простоте, я все маршруты описал в main.py, а функции имеющие отношение к конкретным моделям, в описание самих моделей;
  2. Использовал peewee. Да компактная и простая библиотека, да есть очень удобный функционал, например использование model_to_dict. Но библиотека не сильно распространенная и из популярных СУБД может работать только с MySQL и PostgreSQL;
  3. Использовал sqlite. Опять же в целях упрощения и повышения скорости развертывания. Хотелось чего-то недостижимого, в духе: «Развернул-> сменил пароль -> отдал в использование!».

Что дальше?


Помимо стандартных этапов которые я должен был сделать, но не сделал (линтер + тесты) и доработок направленных на улучшение проекта (добавление настроек, цветовых тем и прочее), планирую использовать данный проект по прямому назначению, а именно как шаблон для новых проектов, возможно востребованных как легендарный «неуловимый Джо». Например, через API или личный кабинет поуправлять nginx и ffmpeg на хосте, где развернут AMP.

Ах, да, репозиторий проекта: https://github.com/BazDen/AMP
Tags:
Hubs:
Total votes 3: ↑3 and ↓0+3
Comments9

Articles