Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Unified Student Profile (USP) is a modern system for NIS Aktobe designed to monitor student academic performance.

Notifications You must be signed in to change notification settings

Bebdyshev/usp-backend

Repository files navigation

USP Backend

Бэкенд-сервис для приложения Единый профиль учащегося (ЕПУ), разработанный на FastAPI.

Технологический стек

  • Фреймворк: FastAPI
  • База данных: PostgreSQL
  • ORM: SQLAlchemy
  • Миграции: Alembic
  • Контейнеризация: Docker
  • Платформа для развертывания: Render.com

🚀 Локальный запуск (с помощью Docker)

Этот метод является рекомендуемым для локальной разработки, так как он полностью воссоздает рабочее окружение.

Требования

Шаги для запуска

  1. Клонируйте репозиторий:

    git clone <URL_вашего_репозитория>
  2. Создайте файл .env: В корневой папке проекта создайте файл с именем .env и скопируйте в него следующее содержимое. Этот файл содержит учетные данные для локальной базы данных.

    # Переменные для инициализации контейнера PostgreSQL
    POSTGRES_DB=usp_db
    POSTGRES_USER=usp_user
    POSTGRES_PASSWORD=usp_password
    
    # Переменная для подключения вашего Python-приложения к контейнеру с БД
    DATABASE_URL=postgresql://usp_user:usp_password@db:5432/usp_db
  3. Запустите проект с помощью Docker Compose: Откройте терминал в корне проекта и выполните команду:

    docker-compose up --build

    Эта команда скачает образ PostgreSQL, соберет образ вашего приложения и запустит оба контейнера.

  4. Проверка: Приложение будет доступно по адресу http://localhost:8080. Вы можете проверить его работоспособность, например, открыв в браузере http://localhost:8080/health.


☁️ Развертывание на Render.com

Проект полностью настроен для автоматического развертывания на платформе Render с использованием "Infrastructure as Code" (render.yaml).

Требования

  • Аккаунт на Render.com.
  • Ваш проект загружен в репозиторий на GitHub.

Шаги для развертывания

  1. Создайте новый Blueprint на Render:

    • В панели управления Render нажмите "New" -> "Blueprint".
    • Подключите ваш GitHub-репозиторий. Render автоматически обнаружит файл render.yaml в корне проекта.
  2. Подтвердите создание сервисов:

    • Render покажет вам, что он собирается создать два сервиса на основе вашего render.yaml:
      • Веб-сервис usp-backend (тип Web Service).
      • Базу данных usp-db (тип PostgreSQL).
    • Нажмите "Apply" или "Create New Services".
  3. Готово!

    • Render автоматически создаст базу данных, соберет Docker-образ вашего приложения и запустит его.
    • Важно: Вам не нужно вручную настраивать переменные окружения (например, DATABASE_URL) в панели управления Render. Файл render.yaml делает это автоматически, безопасно связывая веб-сервис с базой данных.
    • После завершения развертывания ваше приложение будет доступно по URL-адресу, предоставленному Render.

About

Unified Student Profile (USP) is a modern system for NIS Aktobe designed to monitor student academic performance.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages