unita-backend-rebirth

0

Описание

Эх... было время

Языки

  • TypeScript72,3%
  • JavaScript27,7%
README.md

Юнита 🏫

Описание проекта 📝

Юнита — удобное веб-приложение для частной школы Юнита. Главные функции:

  • Выставление и просмотр оценок – для учеников, учителей и администраторов школы.
  • Просмотр расписания по учебным группам.
  • Быстрое взаимодействие между преподавателями, учащимися и администрацией школы.

🎯 Цель — упростить образовательный процесс и сделать систему удобной и понятной для всех участников.

Установка и запуск 🚀

Требования ⚙️

  • Node.js >= 18.0.0
  • NPM или Yarn
  • База данных (PostgreSQL 🐘 и Minio S3 📦)

Установка 🛠️

  1. Клонируйте репозиторий:
  1. Установите зависимости:
  1. Настройте переменные окружения: Создайте файл
    .env
    и добавьте параметры подключения к базе данных и другим сервисам. Пример:
DATABASE_URL="postgresql://postgres:1245@localhost:5432/unita_db"
  1. Примените миграции и сгенерируйте Prisma Client:
  1. Запустите сервер:

После запуска откройте в браузере:

http://localhost:3000

Примеры использования 💡

  • Ученик может войти в личный кабинет и просмотреть свои оценки по всем предметам. 🧑‍🎓 ➡️ 💯
  • Учитель может быстро выставлять оценки. 🧑‍🏫 ➡️ 💯
  • Пользователи могут просмотривать своё расписания занятий.
  • Выкладывание и удаление учебных материалов(расписание, учебный план), личных достижений

Проект разработан для упрощения взаимодействия между учителями, учениками и администрацией частной школы.

Контакты авторов 🧑‍💻

Статус проекта 🛠️

В разработке 🚧

Документация 📑

Стек

NestJS TypeScript Prisma PostgreSQL Minio

Согласования

Переменные

TypeScript / NestJS:

  1. camelCase для переменных и свойств.
let userFirstName: string = "Иван"; const maxItemsPerPage: number = 10;
  1. UPPER_SNAKE_CASE для констант и переменных окружения.
const API_URL: string = "https://example.com/api";
  1. Булевы переменные: начинайте с is, has, should или can.
let isLoggedIn: boolean = true; let hasPermission: boolean = false;

Prisma (schema.prisma):

  1. PascalCase для моделей (User, Users, Post).
  2. camelCase для полей моделей (firstName, createdAt).
model User { id Int @id @default(autoincrement()) firstName String createdAt DateTime @default(now()) }

Файлы и папки:

  • Используйте kebab-case для имён папок и файлов (например, user-service.ts, user-controller.ts).

NestJS:

  • Классы и декораторы — PascalCase (UserService, UsersController).
  • Методы и переменные — camelCase.

Переменные окружения:

  • UPPER_SNAKE_CASE, например:
DATABASE_URL=postgresql://... MINIO_ENDPOINT=http://localhost:9000