Ми ще зовсім молодий проект 2020 року народження, головною ідеєю і метою якого було створення платформи, на якій зможуть зібратись всі охочі допомогти та небайдужі до своїх улюбленців. Ми щиро бажаємо, щоб кожен хто доєднається до нашої спільноти мав змогу знайти себе в ній, знайти однодумців, порадників та людей, які зможуть їм допомогти в догляді їхніх тварин. «LittleFriends» - це програма, яка допоможе власникам тварин знайти людей, які допоможуть доглядати за їхніми домашніми улюбленцями. Користувачі аплікейшену матимуть можливість створювати різного типу оголошення:
- власники тварин створювати таке оголошення, в якому буде відображатися вся інформація про його тваринку, мета його оголошення, дату та час;
- волонтери зможуть виставляти оголошення, в яких буде зазначатися тип послуги, яку вони пропонують та актуальну дату, тобто коли вони зможуть допомогти власникам тварин.
- Для початку потрібно створити пусту базу даних для проекту, в БД
postgres
введіть команду
CREATE DATABASE little_friends;
-
Далі потрібно налаштувати віртуальне оточення:
- Для запуску віртуального оточення через
poetry
:
poetry install poetry shell
- Для запуску через
virtualenv
:
python3 -m venv /venv_friends source venv_friends/bin/activate pip install -r requirements.txt
- Для запуску віртуального оточення через
-
Далі заповніть
.env
файл:
touch .env
echo DATABASE_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$localhost:5432/little_friends >> .env
echo SECRET_KEY=$(openssl rand -hex 32) >> .env
- Для запуску додатку (в режимі розробника):
alembic upgrade head
uvicorn app.main:app --reload
-
Встановіть
docker
таdocker-compose
-
Заповніть .env файл:
touch .env
echo DB_CONNECTION=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB >> .env
echo SECRET_KEY=$(openssl rand -hex 32) >> .env
- Запустіть базу даних та додаток
docker-compose up
app
├── api - обробники AJAX запитів
├── controllers - обробники для сторінок проекту
├── core - Системні налаштування серверу (логування, конфігурація, обробники подій)
├── db - Нижній рівень роботи з бд (міграції та репозиторії)
├── models - Типізовані моделі з бд для роботи pydantic
├── resources - Константи, які використовуються у проекті
├── services - Логіка, яка не відноситься до CRUD операцій
├── static - Статичні файли серверу (картинки, CSS, JS файли)
├── templates - HTML/Jinja2 шаблони сторінок, які віддаються кінцевому користувачу
└── main.py - Створення ASGI додатку з усіма конфігураціями