«CryptoTracker» - трекер криптопортфеля
- Проект CryptoTracker это удобный инструмент учета для хранения всех своих крипто-инвестиций в одном месте, пользователи могут проанализировать стоимость инвестиций, доходы и статистику по ним в виде графиков и диаграмм.
Проект разбит на 7 docker-контейнеров:
- backend — бэкенд проекта
- frontend — фронтенд проекта
- celery — асинхронные периодические задачи для бэкенда
- celery-beat — планировщик задач для celer
- flower — админка для Celery
- postgres — образ базы данных PostgreSQL
- nginx — web-сервер nginx
- Склонировать репозиторий:
git clone https://github.com/bitcoineazy/CryptoTracker.git
- Установить: docker, docker-compose:
sudo apt install docker && sudo apt install docker-compose
- Создать .env файл в директории infrastructure со значениями:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
- Перейти в директорию infrastructure cобрать проект и запустить:
sudo docker-compose up --build -d
- Собрать базу данных на основе ресурсов:
sudo docker-compose exec backend python manage.py makemigrations && sudo docker-compose exec backend python manage.py migrate
- Загрузить готовую бд:
sudo docker-compose exec backend python3 manage.py loaddata assets_admin_db.json
- Создать профиль администратора:
sudo docker-compose exec backend python manage.py createsuperuser
- Собрать статику:
sudo docker-compose exec backend python manage.py collectstatic
Для сборки и использования своего контейнера backend:
- В директории backend/TrackerBackend -
sudo docker build -t username/container .
- Запушить образ на свой dockerhub -
sudo docker push username/container
- Модифицировать поле backend image в infrastructure/docker-compose.yml на свой контейнер
Для загрузки данных и редактирования файлов контейнера
sudo docker exec -u 0 -it {id_контейнера из docker ps} /bin/sh
- Описание API-эндоинтов: 127.0.0.1:80/api/
- Django админка 127.0.0.1:80/admin/
- Flower админка для Celery 127.0.0.1:5566/
- Основная информация о проекте
- ТЗ (техническое задание к проекту)
- Описание автоматизируемых функций
- Схема функциональной структуры автоматизируемой деятельности
- Описание программного обеспечения АС
- Схема логической структуры БД
- Концепция ИС
- Работа с требованиями заинтересованных лиц
- Контейнеризация
- Применение системы Git
- UML заинтересованные лица
- Архитектурные принципы
- Unittest & pipeline
- Паттерны проектирования
- Рефакторинг кода проекта